当前位置: 首页 > 工具软件 > RPM > 使用案例 >

Linux rpm命令详解

班经亘
2023-12-01

rpm简介

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

rpm安装命令

rpm (选项)(参数) 包名

[root@localhost ~]# rpm -ivh 包全名
#注意一定是包全名。如果是跟包全名的命令,则要注意路径,因为软件包在光盘当中
选项:

-i:安装(install);

-v:显示更详细的信息(verbose);

-h:打印 #,显示安装进度(hash);

参数

命令作用
-a查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+设置包装套件的完成阶段,并指定套件档的文件名称;
-c只列出组态配置文件,本参数需配合"-l"参数使用;
-d只列出文本文件,本参数需配合"-l"参数使用;
-e<套件档>或–erase<套件档>删除指定的套件;
-f<文件>+查询拥有指定文件的套件;
-h或–hash套件安装时列出标记;
-i显示套件的相关信息;
-i<套件档>或–install<套件档>安装指定的套件档;
-l显示套件的文件列表;
-p<套件档>+查询指定的RPM套件档;
-q使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R显示套件的关联性信息;
-s显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或–upgrade<套件档>升级指定的套件档;
-v显示指令执行过程;
-vv详细显示指令执行过程,便于排错。
–force强制安装
–nodeps忽略依赖;安装此包需要依赖,如果你不需要这些依赖可以忽略依赖,强制安装

RPM包的升级

[root@localhost ~]# rpm -Uvh 包全名

选项:

-U(大写):升级安装。如果没有安装过,则系统直接安装。如果安装过的版本较低,则升级到新版本(upgrade);

[root@localhost ~]# rpm -Fvh 包全名

选项:

-F(大写):升级安装。如果没有安装过,则不会安装。必须安装有较低版本才能升级(freshen);

RPM包卸载

卸载是有依赖性的。比如,在安装的时候,要先安装 httpd 软件包,再安装 httpd 的功能模块 mod_ssl 包。那么,在卸载的时候,一定要先卸载 mod_ssl 软件包,再卸载 httpd 软件包,否则就会报错。软件包卸载和拆除大楼是一样的,你要拆除 2 楼和 3 楼,一定要先拆除 3 楼。

删除格式非常简单,如下:

[root@localhost ~]# rpm -e 包名
可以使用下列格式:

rpm -e proftpd-1.2.8-1
rpm -e proftpd-1.2.8
rpm -e proftpd-
rpm -e proftpd
不可以是下列格式:

rpm -e proftpd-1.2.8-1.i386.rpm
rpm -e proftpd-1.2.8-1.i386
rpm -e proftpd-1.2
rpm -e proftpd-1
有时会出现一些错误或者警告:
注意: 包名可以包含版本号等信息,但是不可以有后缀.rpm
选项:

-e 卸载(erase);

如果不按依赖性卸载,就会报依赖性错误。例如:

[root@localhost ~]# rpm -e httpd
error: Failed dependencies:
httpd-mmn = 20051115 is needed by (installed) mod_wsgi-3.2-1.el6.i686
httpd-mmn = 20051115 is needed by (installed) php-5.3.3-3.el6_2.8.i686
httpd-mmn = 20051115 is needed by (installed) mod_ssl-1:2.2.15-15.el6.
centos.1.i686
httpd-mmn = 20051115 is needed by (installed) mod_perl-2.0.4-10.el6.i686
httpd = 2.2.15-15.el6.centos.1 is needed by (installed) httpd-manual-2.2.
15-15.el6.centos.1 .noarch
httpd is needed by (installed) webalizer-2.21_02-3.3.el6.i686
httpd is needed by (installed) mod_ssl-1:2.2.15-15.el6.centos.1.i686
httpd=0:2.2.15-15.el6.centos.1 is needed by(installed)mod_ssl-1:2.2.15-15.el6.centos.1.i686
当然,卸载命令是支持"–nodeps"选项的,可以不检测依赖性直接卸载。但是,如果这样做,则很可能导致其他软件包无法正常使用,所以并不推荐这样卸载。

默认安装路径

RPM 包默认安装路径是可以通过命令査询的,一般安装在如表

安装路径含 义
/etc/配置文件安装目录
/usr/bin/可执行的命令安装目录
/usr/lib/程序所使用的函数库保存位置
/usr/share/doc/基本的软件使用手册保存位置
/usr/share/man/帮助文件保存位置

RPM 包难道就不能手工指定安装路径吗?当然是可以的,但是一旦手工指定安装路径,所有的安装文件就会安装到手工指定位置,而不会安装到系统默认位置。而系统的默认搜索位置并不会改变,依然会去默认位置之下搜索,当然系统就不能直接找到所需的文件,也就失去了作为系统默认安装路径的一些好处。所以我们一般不会指定 RPM 包的安装路径,而使用默认安装路径。

 类似资料: