RPM的使用
RPM简述RPM是Redhat
Package
Manager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上
的Uninstaller比较类似。使用RPM,用户可以自行安装和管理Linux上的应用程序和系统工具。
RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已经安装了有关的库文件;在用RPM删
除程序时,它又会聪明地询问用户是否要删除有关的程序。如果使用RPM来升级软件,RPM会保留原先的配置
文件,这样用户就不用重新配置新的软件了。RPM保留一个数据库,这个数据库中包含了所有的软件包的资料,
通过这个数据库,用户可以进行软件包的查询。RPM虽然是为Linux而设计的,但是它已经移值到SunOS、
Solaris、AIX、Irix等其它UNIX系统上了。RPM遵循GPL版权协议,用户可以在符合GPL协议的条件下自由
使用及传播RPM。
使用RPM
RPM共有10种基本的模式:它们是安装、查询、验证、删除等。
安装模式:
rpm
–i
[安装选项]
查询模式:
rpm
–q
[查询选项]
验证模式:
rpm
–V
或
–verify
[验证选项]
删除模式:
rpm
–e
使用RPM的一般选项
一般选项可以用于所有的模式。
-v
显示信息
-h
用“#”显示完成的进度
--keep-temps
保留临时文件,临时文件通常位于/tmp/rpm-*,这个选项要用于debug。
--quiet
安静工作,只有当出现错误时才给出提示信息
--help
显示帮助
--version
显示当前使用的RPM版本
安装和升级的选项
使用RPM来安装的一般格式为:
rpm
–i
[安装选项]
使用RPM来升级的一般格式为:
rpm
–U
[安装选项]
比如,要安装一个新的软件包,它的名字为xosvies-1.6.3-5.i386.rpm,使用下面的命令就可以把它安装到系统上:
#
rpm
-i
xosvies-1.6.3-5.i386.rpm
升级同安装是一样的,只不过升级会把原来低版本的文件删除掉。RPM可以使用FTP安装,这时要指定FTP的完整
路径。使用FTP方式安装时,RPM会先下载所需的软件包,然后再安装。
--force
同--replacepkgs,--replacefiles,--oldpackage一样,当安装的软件版本已经安装在系统上,或者是系统
上现有的版本比要安装的版本高,系统就会发出警告。这时,用户如果坚持安装的话,可以用--force选项。
--nodeps
使用RPM安装前,RPM会检查该软件包的依赖关系,即正确运行该软件包所需的其它软件包是否已经安装。如果没有
安装的话,系统会给出警告。这时,用户如果要强行安装的话,可以使用这个选项。但是作者并不推荐这种做法,
因为这样安装的软件十有易做图是不能运行的。
--test
不实际安装,只是检查并显示可能存在的冲突。
查询选项
查询的命令格式如下:
rpm
–q
[查询选项]
这里的选项包括两大类:软件包选项和信息选项。
软件包选项:
查询系统上是否已经安装这个软件包,软件包的名字是
-a
查询所有安装的软件包
--whatrequires
查询所有需要才能正常运行的软件包。
--whatprovides
查询所有能提供的软件包
-f
查询拥有的软件包,也就是说,是哪一个软件包安装的。
--requiredby
查询所有安装所需要的其它软件包。
-p
查询未安装的软件包。这个软件包可以指定为FTP路径,这时,RPM会下载它的头部信息并查询。
信息选项
-i
显示软件包的信息,包括名称、版本、描述信息。
-R
显示这个软件包所依赖的软件包。
同--requires。
--provides
显示这个软件包所提供的功能
-l
列出这个软件包内所包含的文件。
-s
显示这个软件包的状态,状态是指“normal”“not
installed”“replaced”
验证选项
验证的一般格式为:
rpm
–V|--verify
[验证选项]
验证会把软件包所安装的软件与原先数据库中存储的软件信息做一个比较。用户可以用RPM来验证已经安装的软件包,
RPM可以验证文件的大小,MD5校验码,文件权限,类型,属主等信息。对于特定软件的选项同查询的选项。
验证输出的格式是一个包括8个字符的字符串,这8个字符中每个字符都代表同数据库中信息所比较的结果。如是结果
是“.”,就代表没有问题。下面是相应字符的意义:
5
MD5校验错
D
设备文件错
U
用户名错
G
组名错
S
文件大小错
L
符号链接错
T
文件修改时间错
M
属性错(包括读写权限和文件类型)
删除选项
删除的一般格式为:
rpm
–e
注意:这里只能是软件名,而不是软件包。
--allmatches
删除所指定的所有版本的软件,如果有多个版本存在的话,一般会给出错误码信息。
--nodeps
如果要删除的软件包是别的软件所必需的,在删除时用户会得到警告。这时,如果确认要强行删除,可以使用
--nodeps这个选项。这样一来,相关的软件就不能运行了。
--test
不真正删除,只是测试。
RPM使用范例
软件安装
如果用户手头上有一个RPM软件包,可以使用命令:
#
rpm
–ivh
xanim-27064-3.i386.rpm
安装时出现的错误信息
1.该软件包已经安装
假如用户安装的软件包已经安装,再安装的话会出现下列的错误信息:
#
rpm
–ivh
xanim-27064-3.i386.rpm
foo
package
xanim-27064-3.i386.rpm
is
already
installed
error:
xanim-27064-3.i386.rpm
cannot
be
installed
如果用户一定要安装,可以使用:
#
rpm
–ivh
xanim-27064-3.i386.rpm
--force
2.软件包之间有冲突
假如用户要安装的软件包里的某些文件,先前已经有其它的软件包安装过,即各种软件包之间有冲突,则会
出现以下的错误信息:
#
rpm
–ihv
foo-1.0-1.i386.rpm
foo
/usr/bin/foo
confilicts
with
file
from
bar-1.0-1
error:
foo-1.0-1.i386.rpm
cannot
be
installed
3.缺少相关的文件
有时安装的RPM软件包需要其它的部件才能安装成功。这时安装时有下面的错误信息:
#
rpm
–ihv
bar-1.0-1.i386.rpm
failed
dependencies:
foo
is
needed
by
bar-1.0-1
如果用户要强行安装,可以使用命令:
#
rpm
–ivh
bar-1.0-1.i386.rpm
--nodeps
删除软件
要删除软件非常简单,只要执行下面的命令就行:
#
rpm
–e
xanim
这时,用户要注意使用的是软件的名称xanim,而不是软件包的名称xanim-27.64-3.i386.rpm。
如果要删除的软件是其它软件所需要的,用户会得到类似下面的错误信息: