首页 > 代码库 > 包管理器之RPM
包管理器之RPM
1. rpm包的命名规则:
name-version-release.arch.rpm
version的命名规则: major.minor.release
release的命名规则: 通常包含rpm的制作发行号,以及使用的OS。例:bash-4.3.2-2.el6.x86_64.rpm
OS平台举例:
el6:redhat enterprise linux 6
el5:redhat enterprise linux 5
CentOS6
CentOS5
SUSE11
arch举例:
x86_64, i386, i486, i586, x86, ppc
noarch :表示所有体系架构都通用
2. rpm包的安装
rpm –i /path/to/rpm_package
-h 以#的个数显示安装进度
-v 显示安装的信息
--test 仅测试,不执行真正的安装
--nodeps 忽略包的依赖关系。例: rpm –i –nodeps /tmp/foo.rpm。
--force 强制执行。
--replacepkgs 重新安装。原来的配置文件不会被覆盖,新安装的配置文件将会重命名为以.rpmnew为后缀的文件。例: rpm –i –replacepkgs /tmp/foo.rpm
3. rpm包的卸载
rpm –e package_name
如果有其它的已安装的包依赖该卸载的包,默认情况下,会同时卸载这些安装包。如果想避免这种情况,可以使用 –nodeps 忽略这种依赖关系。
4. rpm包的查询
rpm –q packeage_name 查询指定包名的rpm包是否安装。另外,可以和下面的任意一个选项组合使用,实现不同的查询功能。
-a 查询所有已安装的rpm包
-l 查询rpm包安装的所有文件路径列表
-i 查询rpm包的描述信息
-f /path/to/file 查询指定文件是哪个rpm包所安装生成的。
-c 查询包安装后生成的配置文件。
-d 查询包安装后生成的帮助文档。
--scripts 查询rpm包相关的脚本。4类脚本: preinstall, postinstall, preuninstall, postuninstall.
rpm –qp /path/to/package_file 查询尚未安装的rpm包文件的相关信息。和上面的某些选项再组合使用,实现对应的查询功能。即在rpm包不安装的情况下,提供该包安装后一样的各种查询需求。举例:
rpm –qpl /path/to/package_file 查询安装后会生成的文件列表。
rpm –qpi /path/to/package_file 查询安装包的描述信息。
5. rpm包的升级
rpm –U /path/to/package_file 安装或升级指定的安装包
rpm –F /path/to/package_file 升级指定的安装包
升级和安装一样,也支持 -v -h --nodeps --force 选项组合使用,含义也一样。另外,对内核不要执行升级操作。因为多版本内核可并存,所以建议执行安装操作!
6. rpm包的校验
rpm –V package_name 检查包安装后生成的文件是否被修改过。主要检查9个方面的异同,如文件大小,文件权限,MD5,设备版本号,文件属主,文件属组,文件修改时间等。如果未被修改,就用’.’表示,如果被修改过,就在对应的位置以对应的字符标示。举例:
# rpm -V curl
S.5....T. d /usr/share/doc/curl-7.19.7/README 属于curl包的安装文件README的文件大小,MD5值和文件修改时间都被改变过了!
7. rpm包来源合法性和完整性检验
rpm –K /path/to/package_file 检查指定包文件的来源合法性和完整性
--nosignnature 不检查来源合法性
--nodigest 不检查完整性
另外,导入制作者的公钥,可以使用如下命令。比如,导入CentOS发行版的光盘中的pgp公钥文件:
rpm –import /path/to/gpg-key-file
8. rpm包管理器的数据库重建
rpm包管理器的数据库在:/var/lib/rpm/
rpm --initdb 初始化包管理器的数据库。若不存在数据库,则新建之。
rpm –rebuilddb 直接重建数据库,会覆盖原有的库。
本文出自 “被褐怀玉徳善人间” 博客,请务必保留此出处http://deshanrenjian.blog.51cto.com/9324633/1551009
包管理器之RPM