RPM

来自MagicLinux 百科
跳到导航 跳到搜索

RPM 介绍

RPM Package Manager (原来被称为"Red Hat Package Manager")是一套在Linux下广泛使用的包管理系统。RPM能够进行安装、更新、卸载、检查和查询软件等等的操作。Linux Standard Base标准指定RPM为基本的包管理软件。RPM最初是由Red Hat公司开发的,现在已经在应用很多主流的Linux发行版上使用。

安装RPM软件包

安装二进制RPM包

rpm软件包的安装可以使用程序rpm来完成。执行下面的命令:

rpm -i your-package.rpm

其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。

安装过程中可能出现以下一些关于依赖关系的警告或提示:

... conflict with ... 要安装的包和系统内已安装的包有冲突。
... is needed by ... 要安装的包和系统内已安装的包有冲突。
... is not installed ... 在您的系统上没有找到要安装的包所依赖的软件包。


安装SRPM软件包

SRPM(Source RPM)是只包含源代码的RPM包。如果我们要对RPM包进行改动(如打最新的patch等等), 我们可以通过这些建立自己的二进制RPM包(Binary RPM Package)。

从SRPM直接建立二进制包可以使用以下的方法:

rpmbuild --rebuild foobar.src.rpm

如果rpmbuild执行成功,系统会在/usr/src/mBuild/i686 (根据具体环境可能会有所不同)会有一个新的rpm包,这个是编译好的二进制RPM文件。利用上一节所说的方法,便可以安装这个新的RPM。

更详细的指示可以参考rpmbuild的man文档。

卸载RPM软件包

使用命令 rpm -e <包名>

比如卸载软件包proftpd-1.2.8-1,可以使用下列命令之一:

rpm -e proftpd-1.2.8-1
rpm -e proftpd-1.2.8
rpm -e proftpd-
rpm -e proftpd

有时会出现一些错误或者警告:

... is needed by ... 说明其他软件包需要这个软件包,不能被卸载。

不安装而获取rpm包中的文件

使用工具rpm2cpio和cpio

rpm2cpio xxx.rpm | cpio -vi
rpm2cpio xxx.rpm | cpio -idmv
rpm2cpio xxx.rpm | cpio --extract --make-directories

参数i和extract相同,表示提取文件。v表示指示执行进程

d和make-directory相同,表示根据包中文件原来的路径建立目录

m表示保持文件的更新时间。

更详细的参数说明可以参见cpio的man文档。

查询RPM的信息

获得软件包相关的信息用rpm -q,q表示查询query,后面可以跟其他选项:

i 表示info,获得软件包的信息
l 表示list,获得文件列表
a 表示all,在所有包中执行查询
f 表示file,根据文件进行相关的查询
p 表示package,根据软件包进行查询

查询系统中安装了哪些RPM包

rpm -qa 列出所有安装过的包

下面以 mysql 为例,如果要查找所有安装过的包含某个字符串sql的软件包

rpm -qa |grep sql

获得某个软件包的全名

rpm -q mysql

可以获得系统中安装的mysql软件包全名,从中可以获得当前软件包的版本等信息。

这个例子中可以得到信息:mysql-3.23.54a-11

查询RPM包中的文件

本条目尚未完全完成,我们需要您的参与!

rpm -ql mysql

如果只是想知道可执行程序放到那里去了,也可以用which,比如:

which mysql
whereis ftptop

分类:配置 分类:安装