rpm包管理详解(2)

来源:互联网 发布:做淘宝客服需要交钱吗 编辑:程序博客网 时间:2024/06/06 16:01

转自: http://blog.csdn.net/dingyuanpu/article/details/5572302


本节接着介绍rpm的查询功能,查询是我们最常用的功能,例如查询一个包里包含哪些文件、一个文件属于哪个包、以及包之间的依赖关系等等。

rpm的-q参数是用来进行查询的,需要明确的是rpm既可以对安装在系统上的包进行查询,也可以对一个未安装的rpm包进行查询。当一个rpm包安装到系统上之后,安装信息通常会保存在本地的/var/lib/rpm/目录下,数据会以berkeley DB的方式保存。查看/var/lib/rpm/Packages文件的类型可以验证这一点。

[leconte@localhost rpm]$ file /var/lib/rpm/Packages/var/lib/rpm/Packages: Berkeley DB (Hash, version 8, native byte-order)

这种情况下的查询其实就是对bdb的读访问。而对一个未安装的rpm包进行查询,则是通过解读rpm包本身而获取信息,这一点是首先需要明确的。

下面我就简单罗列一下rpm最常用的几个查询功能
1.rpm -qa 用来查询系统安装的所有包,a代表all
2.rpm -ql [包名] 用来查询某个包里的文件列表,例如查询包passwd里包含的内容

[leconte@localhost rpm]$ rpm -ql passwd/etc/pam.d/passwd/usr/bin/passwd/usr/share/man/man1/passwd.1.gz

3.rpm -qi [包名] 用来查询包信息,其中包含包的介绍,作者,打包日期等重要信息。
4.rpm -qf [文件名] 用来查询一个文件所属的rpm包,例如:

[leconte@localhost rpm]$ rpm -qf /etc/passwdsetup-2.5.58-4.el5

系统配置文件/etc/passwd是属于setup这个包的。
5.rpm -qV [包名] 用来验证某个包中安装的各文件的状态,如果当前文件的大小、md5和安装时数据库里保存的信息不一致,该命令则会将不一致的文件列出来。该命令对于系统出问题的情况下的故障排查很有帮助。

上面是几个最常用的查询命令,都是针对查询系统rpm包情况的。如果要查询未安装的rpm包则只需要加上p参数和包路径即可。例如查询包perl-Git-1.5.5.6-4.el5.i386.rpm的信息:

[leconte@localhost soft]$ rpm -qip perl-Git-1.5.5.6-4.el5.i386.rpmwarning: perl-Git-1.5.5.6-4.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6Name        : perl-Git                     Relocations: (not relocatable)Version     : 1.5.5.6                           Vendor: Fedora ProjectRelease     : 4.el5                         Build Date: 2009年06月19日 星期五 2128分05秒Install Date: (not installed)               Build Host: xenbuilder2.fedora.redhat.comGroup       : Development/Libraries         Source RPM: git-1.5.5.6-4.el5.src.rpmSize        : 24878                            License: GPLSignature   : DSA/SHA1, 2009年06月20日 星期六 04时07分18秒, Key ID 119cc036217521f6Packager    : Fedora ProjectURL         : http://kernel.org/pub/software/scm/git/Summary     : Perl interface to GitDescription :Perl interface to Git.
原创粉丝点击