rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
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 | 忽略依赖;安装此包需要依赖,如果你不需要这些依赖可以忽略依赖,强制安装 |
[root@localhost ~]# rpm -Uvh 包全名
选项:
-U(大写):升级安装。如果没有安装过,则系统直接安装。如果安装过的版本较低,则升级到新版本(upgrade);
[root@localhost ~]# rpm -Fvh 包全名
选项:
-F(大写):升级安装。如果没有安装过,则不会安装。必须安装有较低版本才能升级(freshen);
卸载是有依赖性的。比如,在安装的时候,要先安装 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
当然,卸载命令是支持"–nocteps"选项的,可以不检测依赖性直接卸载。但是,如果这样做,则很可能导致其他软件包无法正常使用,所以并不推荐这样卸载。
RPM 包默认安装路径是可以通过命令査询的,一般安装在如表
安装路径 | 含 义 |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
RPM 包难道就不能手工指定安装路径吗?当然是可以的,但是一旦手工指定安装路径,所有的安装文件就会安装到手工指定位置,而不会安装到系统默认位置。而系统的默认搜索位置并不会改变,依然会去默认位置之下搜索,当然系统就不能直接找到所需的文件,也就失去了作为系统默认安装路径的一些好处。所以我们一般不会指定 RPM 包的安装路径,而使用默认安装路径。