CentOS系统中rpm包管理器的使用技巧

2020-01-30 15:04:09刘景俊

rpm: redhat package manager, RPM is Package Manager
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
RPM包的命名
20151130103130924.jpg (886×362)

例如,bash-4.3.2-1.centos6.x86_64.rpm


rpm的应用
安装

复制代码
rpm {-i|--install} [install-options] PACKAGE_FILE ...

-i            安装
-v            显示详细信息,可叠加使用查看更加详细信息,如-vv,-vvv
-h            显示进度,用50个#来作为进度条
 
              我们一般组合使用-ivh来安装rpm包
 
--nodeps      取消依赖关系
--replacepkgs 重新安装
--test        测试安装,而不是真正安装
举例:

复制代码
[root@localhost ~]# rpm -ivh package.rpm

升级
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
     如果有较旧的版本程序包,则升级安装;若没有,则直接安装
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
     如果有较旧的版本程序包,则升级安装;若没有,则终止
 
     我们一般组合使用-Uvh、-Fvh来安装rpm包
 
[install-options]
     --oldpackage  降级安装
     --force       忽略冲突,强制执行
 
注意:
不要对内核包执行升级操作;linux支持多版本内核并存,因此,对新版本内核可直接安装;
如果原程序包的配置文件安装后曾被改动,升级时,新版本的文件并不会直接覆盖老版本的文件,而是把新版本的文件重命(加后缀.rpmnew)名后保留;
举例:

复制代码
[root@localhost ~]# rpm -Uvh package.rpm

卸载

复制代码
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

--nodeps     忽略依赖关系
--test       卸载测试
举例:

复制代码
[root@localhost ~]# rpm -ev package

查询

复制代码
rpm {-q|--query} [select-options] [query-options]

[select-options]
1、查询该包是否安装