Linux软件包管理之rpm

1.1 rpm包命名格式

name-version-release.arch.rpm

1.2 rpm命令格式及参数

rpm  [options] /path/to/rpm_pakage

-i:安装软件包

-v:显示安装进度

-h:以#号的个数显示安装进度,一个#号表示2%的进度

#通常我们使用rpm -ivh 三个选项结合在一起安装软件包

-e:卸载软件包

-q:查询软件包

-a:显示所有已安装的软件包,通常配合-q参数一起使用

-qi:查询包描述信息

-ql:查询安装完成后再当前系统中生成的文件列表

-qf:查询某文件是哪个安装包生成的,rpm -qf  /path/to/filename

-qd:查看安装包生成的帮助文档,rpm -qd pakage_name

-qc:查询包安装完成后生成的配置文件,rpm -qc pakage_name

-q --scripts:查询包相关的脚本,rpm -q --scripts pakage_name

 脚本有4类:

preinstall:安装前脚本

postinstall:安装后脚本

preuninstall:卸载前脚本

postuninstall:卸载后脚本

--test:仅测试并不真正安装软件包

--nodeps:当安装或者卸载软件包但不想安装其依赖或者卸载其依赖包时忽略依赖关系。

--force:强制安装或者卸载

-ivh --replacepgks:重新安装指定软件包

-qpl:尚未安装时查询安装后会生成的文件列表

-U:安装或升级软件包

-F:仅升级软件包

注意:不要对内核执行升级操作:多版本内核可并存,因此,建议执行安装操作

-V:检查包安装后生成的文件是否被修改过,rpm -V package_name

-K:检查其包的来源合法性

--initdb:初始化数据库,如果事先不存在一个数据库,则新建

--rebuilddb:直接重建数据库,会覆盖原有的库

--import:导入公钥文件

1.3 使用示例

a.查看系统中是否安装httpd

[root@moban ~]# rpm -q httpdhttpd-2.2.15-39.el6.centos.x86_64[root@moban ~]# rpm -qa|grep httpdhttpd-2.2.15-39.el6.centos.x86_64httpd-tools-2.2.15-39.el6.centos.x86_64b.查询/etc/passwd文件是由那个软件包生成的[root@moban ~]# rpm -qf /etc/passwdsetup-2.8.14-20.el6_4.1.noarch

c.查询httpd服务的配置文件安装在那个路径

[root@moban ~]# rpm -qc httpd/etc/httpd/conf.d/welcome.conf/etc/httpd/conf/httpd.conf/etc/httpd/conf/magic/etc/logrotate.d/httpd/etc/sysconfig/htcacheclean/etc/sysconfig/httpd

d.查询httpd的帮助文件在哪个路径

[root@moban ~]# rpm -qd httpd/usr/share/doc/httpd-2.2.15/ABOUT_APACHE/usr/share/doc/httpd-2.2.15/CHANGES/usr/share/doc/httpd-2.2.15/LICENSE/usr/share/doc/httpd-2.2.15/NOTICE/usr/share/doc/httpd-2.2.15/README/usr/share/doc/httpd-2.2.15/VERSIONING/usr/share/man/man8/apachectl.8.gz/usr/share/man/man8/htcacheclean.8.gz/usr/share/man/man8/httpd.8.gz/usr/share/man/man8/rotatelogs.8.gz/usr/share/man/man8/suexec.8.gz

e.安装mysql软件包

[root@moban local_repo]# rpm -ivhmysql-5.1.73-3.el6_5.x86_64.rpmPreparing...               ########################################### [100%]1:mysql                 ########################################### [100%]