RPM 命令

RPM的全称是Red Hat Package Manager.

用rpm -ivh来安装RPM包

RPM的文件名包含了软件的名字, 版本号, 发行号,以及软件架构.

比如在MySQL-client-3.23.57-1.i386.rpm这个文件名中,

  • MySQL-client 是包的名字
  • 3.23.57 是版本号
  • 1 是发行号
  • i386 是软件架构(32位)

当你安装一个RPM包时, RPM会检查你的系统是否能够安装这个包, 看一下这个包文件要安装在哪儿, 安装完成之后还会更新RPM的软件数据库.

  1. # rpm -ivh
  2. MySQL-client-3.23.57-1.i386.rpm
  3. Preparing...################################### [100%]
  4. 1:MySQL-client############################## [100%]

上面的例子中:

  • -i 代表安装(install)
  • -v 代表显示详细信息(verbose)
  • -h 打印hash marks(我也不知道这是什么鬼…)

用rpm -qa列出全部已经安装的包

  1. # rpm -qa
  2. cdrecord-2.01-10.7.el5
  3. bluez-libs-3.7-1.1
  4. setarch-2.0-1.1
  5. ...
  6. ...
  7. ...

其中:

  • -q 列举, 查询(query)
  • -a 全部(all)

列举包的时候规定显示格式

  1. # rpm -qa --queryformat '%{name-%{version}-%{release} %{size}\n'
  2. cdrecord-2.01-10.7 12324
  3. bluez-libs-3.7-1.1 5634
  4. setarch-2.0-1.1 235563
  5. ...
  6. ...
  7. ...

用rpm -qf查看某个文件所属的包

  1. # rpm -qf /usr/bin/mysqlaccess
  2. MySQL-client-3.23.57-1

可以看到这个文件属于MySQL-client-3.23.57-1这个包.

用rpm -qip查看某个已安装包的具体信息

  1. # rpm -qip MySQL-client-3.23.57-1.i386.rpm
  2. Name : MySQL-client Relocations: (not relocatable)
  3. Version : 3.23.57
  4. Vendor : MySQL AB
  5. Release : 1
  6. Build Date : Mon 09 Jun 2003
  7. Install Date:
  8. Build Host : build.mysql.com
  9. Group : Applications/Databases
  10. Size : 5305109
  11. Signature : (none)
  12. Packager : Lenz Grimmer
  13. URL : http://www.mysql.com/
  14. Summary : MySQL - Client
  15. License : GPL / LGPL
  16. Description : This package is a standard MySQL client.

其中:

  • -i 查看rpm包的信息
  • -p 指定包的名字

查看包内的文件

  1. $ rpm -qlp ovpc-2.1.10.rpm
  2. /usr/bin/mysqlaccess
  3. /usr/bin/mysqldata
  4. /usr/bin/mysqlperm
  5. ...
  6. ...
  7. /usr/bin/mysqladmin

其中-l的意思就是列出包内的文件.

用rpm -qRP查看某个包依赖的其他包

  1. # rpm -qRp MySQL-client-3.23.57-1.i386.rpm
  2. /bin/sh
  3. /usr/bin/perl

这个mysql-client就依赖shperl.

扩展阅读

RPM Command: 15 Examples to Install, Uninstall, Upgrade, Query RPM Packages