rpm使用tips

rpm检查spec

遇到一个问题,需要检查rpm包的原始spec文件,搜索了一下,可能有如下解决方法

  • 使用rpmrebuild工具 - 参考extract the spec file from rpm package

    rpmrebuild --package --notest-install -e oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm rpmrebuild -s hercules.spec hercules

可以从现有下载的rpm中或者已经安装的软件获取原始的spec文件

rpm检查依赖包

如果要检查软件包依赖,可以使用

rpm -q --requires xmms

参考 How to extract spec file from rpm file

rpm检查所有安装的文件列表

列出所有安装文件

rpm -ql BitTorrent

rpm检查最近安装的包

显示最近安装的包

rpm -qa --last

显示所有安装包

rpm -qa

检查一个文件属于哪个rpm包

例如检查passwd文件属于哪个包

rpm -qf /usr/bin/htpasswd

检查rpm包依赖

rpm -qR <package-name>

检查rpm包的信息

rpm -qi vsftpd

可以输出rpm包的详细信息

在安装rpm之前检查包信息

rpm -qip sqlbuddy-1.3.3-1.noarch.rpm

检查已经安装的软件包的文档

rpm -qdf /usr/bin/vmstat

校验rpm包

rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

校验所有安装软件包

rpm -Va

导入rpm的GPG key

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

重建损坏的RPM包

cd /var/lib
rm __db*
rpm --rebuilddb
rpmdb_verify Packages

rpm版本降低

对于已经安装了高版本的软件包,需要降级版本,则需要使用参数--oldpackage,这样就允许安装旧版本。另外要注意使用-U参数,这样就是upgrade,就会替换另一个版本。如果使用-i参数替代-U,则会导致同时安装两个版本。

rpm -Uvh --oldpackage [filename]

参考How do I downgrade an RPM?

也可以使用 yum downgrade packagename 方法。

Last updated