RPM软件包管理以及使用方法

Red Hat Package Manager(简称RPM)工具包由于其使用简单操作方便,可以实现软件的查询、安装、卸载、升级和验证等功能,为Linux使用者节省大量的时间,所以被广泛的用于Linux下安装、删除软件。RPM命令详细说明可以在Linux终端使用man命令显示出来。

 

1)查询RPM软件包

在新软件安装之前,一般都要先查看一下这个软件包里有什么内容。RPM软件包的查询使用带参数-q的rpm命令实现的,系统将会列出待查询软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。RPM软件包查询命令的格式如下:

rpm {-q|--query} [select-option] [query-option]

(1)查询文件所属软件包

rpm -qf /usr/share/pixmaps/Xplns.png

xplns-3.3.1-lglibc23

(2)查询软件包所包含的文件列表

rpm -ql xplns-3.3.1-lglibc23

(3)查询软件包概要信息

rpm -qi xplns-elm-3.3.1-1

(4)查询所有已经安装的软件包

rpm -qa

 

2)RPM软件包的安装

软件包查询完成以后,用户就可以进行软件的实际安装了。使用带参数-i的rpm命令可以实现RPM软件包的安装,其命令格式如下:

rpm -i ( or --install) options file1.rpm ... fileN.rpm

(1)普通安装:使用最多的安装方式,采用一般的安装参数ivh,表示显示附加信息和安装进度的#符号的安装方式。

rpm -ivh xplns-elm-3.3.1-1.i386.rpm

(2)测试安装:测试安装其实并未实际安装

rpm -i --test xplns-elm-3.3.1-1.i386.rpm 

(3)强制安装:强制安装软件,忽略软件包依赖性以及文件的冲突。如果对软件包的依赖性很清楚,而且确定要忽视文件的冲突,可以选择强制安装。不建议使用这个安装方式。

rpm -ivh --force xplns-elm-3.3.1-1.i386.rpm

 

3)RPM软件包安装可能出现的问题

(1)重复安装

如果用户的软件包已经被安装,将会出现以下的信息。

rpm -ivh xplns-elm-3.3.1-1.i386.rpm

foo package foo-1.0-1 is already installed

error: xplns-elm-3.3.1-1.i386.rpm cannot be installed

如果用户仍然要安装该软件包,可以在命令行上使用--replacepkgs选项,RPM将忽略该错误信息强行安装

(2)文件冲突

如果用户要安装的软件包中有一个文件已经在安装其他软件包时安装,会出现以下的错误信息。

rpm -ivh xplns-elm-3.3.1-1.i386.rpm

foo /usr/bin/foo conflicts with file from bar-1.0-1

error: xplns-elm-3.3.1-1.i386.rpm cannot be installed

要想让RPM忽略该错误信息,请使用--replacefiles命令行选项

(3)依赖关系

RPM软件包可能依赖于其他软件包,也就是说要求在只有安装特定的软件包之后才能正常安装该软件包。如果在用户安装某个软件包时存在这种未解决的依赖关系,会产生以下信息。

rpm -ivh bar-1.0-1.i386.rpm

failed dependencies:foo is needed by bar-1.0-1

用户必须先安装完所依赖的软件包,才能解决这个问题。如果用户想强制安装,请使用--nodeps命令行选项,不推荐Linux初学者使用。

 

4)RPM软件包的卸载

如果某个软件安装后不再需要,或者为了腾出空间,则可以卸载该软件。RPM同样也提供软件卸载的功能。卸载RPM软件包的命令的格式如下:

rpm -e rpm_name

需要注意的是,这里的rpm_name是软件包的名称,而不是软件包的文件名。如下所示:

rpm -e xplns-elm

另外,如果其他软件包依赖于用户要卸载的软件包,卸载时则会产生类似如下的错误信息:

removing these packages would break dependencies: foo is needed by bar-1.0-1

如果需要忽略这个错误,并继续卸载,可以使用--nodeps命令行选项进行强制卸载。通常并不提倡强制卸载,因为强制卸载后依赖于该软件包的程序可能无法正常运行。

 

5)RPM软件包的升级

升级软件包用于较新的版本软件包替代旧版本软件包,应使用带-U参数的RPM命令完成,其命令格式如下:

rpm -U options file1.rpm ... fileN.rpm

其中,-U参数表明需要更新软件,options是一些其他的参数选项,file.rpm到fileN.rpm指明需要升级的软件包名称。

例如需要更新系统中的xplns-elm软件,方法如下所示。

rpm -Uvh xplns-elm-3.3.1-1.i386.rpm

RPM将自动卸载已经安装的老版本的xplns-elm软件包,用户不会看到有关信息。事实上用户可以总是使用-U来安装软件包,因为即便以往未安装过该软件包,也能正常运行。

 

最后附上url:  http://www.rpm.org/

----------------------------------------------

Welcome to rpm.org

     enjoy

----------------------------------------------

RPM软件包管理以及使用方法

上一篇:C99标准的柔性数组 (Flexible Array)


下一篇:Discuz中关于displayorder的几种定义