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 | 仅仅是测试,并不真的安装、升级、删除软件包 |
在命令中使用-v选项输出安装详细信息,用-h选项以输出“#”符号显示安装进度。由于软件包没有签名,所有安装中出现警告信息;如果要消除显示警告信息可以通过增加—nosignature选项。命令执行中输出的显示信息“Preparing。。。”表示正在对软件包进行预处理,主要是对软件包的依赖性进行检查。虽然rpm命令的安装选项很多,但常用的主要就是v和h选项。
由于用户事先可能不知道哪些包已经安装过,哪些没有安装,所有软包在实际安装过程中会出现一些常见的错误:
1)软件包已经安装
如果用户安装的软件包已经安装过了,则会出现一下信息:
如果用户坚持要重新安装,则可以使用force或replacepkgs选项,强制进行重新安装。
2)文件冲突
如果用户安装的软件包中某个文件已经在安装其他软件包时安装过,就会出现文件冲突的信息,这是安装失败。可以采用强制替换软件包文件的-replacefiles或—force等
3)依赖性检查失败
在执行rpm命令安装软件包时,默认会自动检查软件包的依赖关系;既要安装的软件包如果依赖其他软件包,而其他软件包还没有安装时,会出现依赖关系检查失败的信息,当然安装也会终止。
如果安装的软件包依赖其他的软件包,因此要先安装依赖的软件包。。安装选项—nodeps可以要求命令不做依赖检测,但是安装后的软件不一定会正常运行。
rpm –qa (查询所有安装包)
rpm –qi 软件名(查看软件的安装信息)
rpm –ql 软件名(查看软件安装的目录)
转载于:https://blog.51cto.com/wangjun51/1259821