RPM是Red Hat Package Manager 的缩写,是Red Hat Linux发行版专门用来管理Linux各项软件包的程序,由于它遵循GPL(GNU通用公共许可证)协议且功能强大、使用方便,因而受到许多用户的青睐。RPM是一个开放的软件包管理器,它工作于许多种类型的Linux和Unix操作系统。

RPM包的特色:

①易用性(Ease of use)

②面向软件包(Package-oriented focus)

③包的升级性(Upgradability of packages)

④探测包的依赖性(Tracking of packageinterdependencies)

⑤强大的查询能力(Query capability)

⑥软件包校验(Verification)

⑦支持多种结构(Support for multiple architectures)

⑧保持软件包原始特征(Use of pristine sources)

RPM命令的用法:

rpm 【 OPTION】

其中,OPTION…..为命令选项。由于rpm功能强大,所以它的命令选项有很多;主要有查询、校验、数据库、安装、升级、删除和公共选项等。

Rpm命令的公共选项及说明

公共选项

选项说明

-D或—define=’MACRO EXPR’

表达式EXPR的值定义宏

-E或—eval=’EXPR’

输出EXPR宏表达式

--macros=<FILE…>

从指定的列表文件<FILE…>中读,以代替默认文件

--nodigest

不校验软件包的摘要信息

--nosignature

不校验包的签名

--rcfile=<FILE…>

用指定的配置文件列表<FILE..>代替默认的文件

-r或—root=ROOT

用ROOT作为顶级目录(默认为“/”)

--querytages

显示已知的查询标志

--showrc

显示最后的rpmrc和宏配置文件

--quiet

输出指令执行的详细信息

-v或—verbose

输出指令执行的详细信息

--version

显示版本信息

-?或—help

显示帮助信息

--usage

简要显示命令用法信息

软件包的安装:

从网络上可以搜索到大量的应用程序的RPM软件包,大多数RPM软件包的命名有一定的规律,一般有类似linuxconf-1.34r3-1.i386.rpm或linuxconf-gui-1.34r3-1.i386.rpm的文件名,前者是工作在字符界面下的软件,而后者是工作在图形界面下。这些RPM软件包的文件名一般包括一下几个部分:

1)软件包的名称,如linuxconf

2)软件包的版本号,如1.34r3

3)发行号,如1.

4)硬件平台,如i386,i586等

5)扩展名,一般就是rpm。

此外,网络上还有一种源代码软件包,即SRPM软件包,其软件包名中带有src字样。这种软件包是不带编译后的可执行文件,需要用户自己编译。

1、RPM软件包的安装。

通常安装一个RPM软件包的命令格式:

rpm  { i | --install }【install-options】PACKAGE_FILE…

其中,-i或—install是必需的命令选项install-options是可选的命令选项,参数PACKAGE_FILE….是要安装的软件包文件名列表。

Rpm命令的安装、升级与删除选项及其说明:

选项

说明

--aid

当需要时,添加建议的软件包以便处理

--allfiles

安装或升级软件包中所有的文件,不管文件是否存在

--allmatches

删除所有指定的软件包

--badreloc

发生错误时,重新配置文件

--excludepath OLDPATH

忽略在指定目录OLDPATH里的文件

--excludedocs

安装软件包时不安装任何文档(包括man手册和文本信息)

--force

强制安装更换软件包或文件。与命令选项—replacepkgs、--replacefiles、--oldpackage一样

-h或—hash

软件包安装或升级时输出“#”显示进度,经常与-v一起使用

--ignoresize

安装前不检查磁盘空间是否足够

--ignoreach

即使二进制包使用的结构格式与主机不匹配,仍然安装和升级软件包

--ignoreos

和—ignoreace相同

--includedocs

安装软件包时,安装所有的文档,这是默认设置

--justdb

只是更新数据库,不改变文件

--nodigest

当读取包时不校验包或标题摘要

--nosignature

当读取包时不校验包或标题签名

--nodeps

安装、升级、删除软件包是不做依赖性检查

--nosuggest

不提示丢失包的依赖关系

--noorder

不重新编排软件包的安装顺序,以便满足他们彼此间的依赖关系

--nopostun

不执行任何安装脚本文件

--notriggpostun

不执行软件包内的任何脚本文件

--oldpackage

允许升级中用旧包替换新包

--percent

安装或升级时显示完成进度的百分比

--prefix NEWPATH

如果重新配置文件,就把文件放在指定的目录NEWPATH之下

--repackage

在软件包删除前重新打包文件

--replacefiles

强制替换软件包中的文件

--replacepkgs

强行替换软件包

--test

仅仅是测试,并不真的安装、升级、删除软件包

使用rpm安装python软件包 使用rpm命令安装软件包_配置文件

在命令中使用-v选项输出安装详细信息,用-h选项以输出“#”符号显示安装进度。由于软件包没有签名,所有安装中出现警告信息;如果要消除显示警告信息可以通过增加—nosignature选项。命令执行中输出的显示信息“Preparing。。。”表示正在对软件包进行预处理,主要是对软件包的依赖性进行检查。虽然rpm命令的安装选项很多,但常用的主要就是v和h选项。

由于用户事先可能不知道哪些包已经安装过,哪些没有安装,所有软包在实际安装过程中会出现一些常见的错误:

1)软件包已经安装

如果用户安装的软件包已经安装过了,则会出现一下信息:

使用rpm安装python软件包 使用rpm命令安装软件包_运维_02

如果用户坚持要重新安装,则可以使用force或replacepkgs选项,强制进行重新安装。

2)文件冲突

如果用户安装的软件包中某个文件已经在安装其他软件包时安装过,就会出现文件冲突的信息,这是安装失败。可以采用强制替换软件包文件的-replacefiles或—force等

3)依赖性检查失败

在执行rpm命令安装软件包时,默认会自动检查软件包的依赖关系;既要安装的软件包如果依赖其他软件包,而其他软件包还没有安装时,会出现依赖关系检查失败的信息,当然安装也会终止。


如果安装的软件包依赖其他的软件包,因此要先安装依赖的软件包。。安装选项—nodeps可以要求命令不做依赖检测,但是安装后的软件不一定会正常运行。

rpm –qa (查询所有安装包)

 rpm –qi 软件名(查看软件的安装信息)

 rpm –ql 软件名(查看软件安装的目录)



转载于:https://blog.51cto.com/wangjun51/1259821