.. _rpm:
==============
rpm包管理器
==============
检查安装rpm保重的运行脚本
===========================
rpm包中会包含一些脚本,有时候需要检查脚本以确定安装软件的前后执行的脚本运行情况::
rpm -qp --scripts filename.rpm
对于已经安装好的软件包,也可以检查脚本::
rpm -q --scripts packageName
rpm的spec配置
================
有时候你需要制作一个rpm包,需要参考以下类似软件的打包spec文件。此时可以使用 ``rpmrebuild`` 工具提取::
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
或者使用::
rpm -qR xmms
检查rpm所有安装的文件列表
==========================
- 列出所有安装文件::
rpm -ql BitTorrent
检查最近安装的rpm包
=====================
- 显示最近安装的包::
rpm -qa --last
- 显示所有安装包::
rpm -qa
检查一个文件属于哪个rpm包
===========================
- 例如检查passwd文件属于哪个包::
rpm -qf /usr/bin/htpasswd
检查rpm包的信息
================
- 输出rpm包的详细信息::
rpm -qi vsftpd
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的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]
也可以使用 ``yum downgrade packagename``
参考
======
- `Linux RPM: View Script That Run When You Install RPM Files `_
- `extract the spec file from rpm package `_
- `How to extract spec file from rpm file `_
- `How do I downgrade an RPM? `_