如何在CentOS中使用rpm包管理器?针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想解决这个问题的伙伴找到更简单易行的方法。
RPM包的命名
比如bash-4 . 3 . 2-1 . centos 6 . x86 _ 64 . rpm。
rpm的应用装置
代码如下:
rpm {-I |-install }[install-options]PACKAGE _ FILE.
-i安装
-v显示详细信息,可以叠加查看更详细的信息,如-vv,-vvv
-h显示进度,50 #作为进度条
我们通常结合使用-ivh来安装rpm包
-节点取消依赖关系
- replacepkgs重新安装
-测试测试安装,而不是实际安装
示例:
代码如下:
[root @ localhost ~]# rpm-IVH package . rpm
升级
rpm {-U| -升级}[安装-选项] PACKAGE_FILE.
如果有旧版本的软件包,请升级安装;如果没有,直接安装
rpm {-F |-fresh }[安装选项] PACKAGE_FILE.
如果有旧版本的软件包,请升级安装;如果没有,终止
我们通常结合使用-Uvh和-Fvh来安装rpm包
[安装选项]
-旧软件包降级安装
-强制忽略冲突并实施冲突
注意:
不要升级内核包;Linux支持多版本内核共存,可以直接安装新版内核;
如果原包的配置文件在安装后发生了变化,那么在升级时,新版本的文件不会直接覆盖旧版本的文件,而是会被重命名(后缀。rpmnew)并保留;
示例:
代码如下:
[root @ localhost ~]# rpm-Uvh package . rpm
从计算机上卸载
代码如下:
rpm {-e |-erase }[-all matches][-node PS][-no script][-no triggers][-test]PACKAGE _ NAME.
- nodeps忽略依赖关系
-测试卸载测试
示例:
代码如下:
[root@localhost ~]# rpm -ev包
询问
代码如下:
rpm {-q |-query }[select-options][query-options]
[选择-选项]
1.询问软件包是否已安装。
包装名称.
2.查询所有已安装的软件包
中间有空格
3.查询哪个包安装并生成了文件
rpm -qf /path/to/somefile
4.查询尚未安装的安装包的相关信息。
转速-qp包_文件
[查询-选项]
1.查询包的简要描述信息
包装名称
2.查询安装软件包后生成的所有文件的列表
rpm -ql PACKAGE_NAME
3.查询安装软件包后生成的所有配置文件的列表
质量控制包_名称
4.查询软件包安装后生成的所有帮助文件的列表
包装名称
5.查询变更日志列表信息,该信息在rpm包生成时会随版本而变化
变更日志包名
6.查询包提供的功能
提供包装名称
7.查询包依赖的功能
要求包装名称
8.安装和卸载软件包时查询脚本
rpm -q -脚本
安装和卸载有四个脚本:
预安装:之前执行的脚本
安装后执行的脚本:
br/> preuninstall: 卸载前执行的脚本 postuninstall: 卸载后执行的脚本举例:查询系统中所有已安装 RPM 包
代码如下:
[root@localhost ~]# rpm -qa
查询 RPM 包中包含的文件列表
代码如下:
[root@localhost ~]# rpm -qlp package
查询 RPM 包中包含的帮助文件列表
代码如下:
[root@localhost ~]# rpm -qdp package
校验
代码如下:
rpm {-V|--verify} [select-options] [verify-options]
常用用法:rpm -V PACKAGE_NAME文件改动后校验会有下列相关信息提示:5:文件的MD5校验值S:文件大小L:链接文件T:文件创建的时间D:设备文件U:文件的用户G:文件的用户组M:文件的权限举例:先用vim对yum.conf文件进行修改,再进行校验
代码如下:
[root@localhost ~]# rpm -V yum.confS.5....T. c /etc/yum.conf
包来源合法性及完整性验正rpm --import PUBKEY ... 导入密钥rpm {-K|--checksig} [--nosignature] [--nodigest] PACKAGE_FILE ... 验证密钥 --nosignature: 不检查来源合法性 --nodigest: 不检查完整性举例:
代码如下:
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-*[root@localhost ~]# rpm -k /var/ftp/pub/Server/kernel-PAE-2.6.18-194.el5.i686.rpm/var/ftp/pub/Server/kernel-PAE-2.6.18-194.el5.i686.rpm: (sha1) dsa sha1 md5 gpg OK
公共数据库:/var/lib/rpm
重建数据库
代码如下:
rpm {--initdb|--rebuilddb}
初始化:--initdb 如果事先不存在数据,则会新之;否则,不执行任何操作 重新构造:--rebuilddb 无论当前是否已经存在数据库,都会直接重建并覆盖现有数据库举例:
代码如下:
[root@localhost ~]# rpm --initdb[root@localhost ~]# rpm --rebuilddbyum: Yellow dog Updater,Modified
主要功能是更方便的添加/删除/更新RPM包,它能自动解决包的倚赖性问题,便于管理大量系统的更新问题使用rpm2cpio,cpio提取rpm包的中的特定文件有些时候,我们需要提取rpm包中的一些文件,通过如下方法可以快速提取首先查询rpm包中的文件
代码如下:
[root@taotips ~]# rpm -qpl anaconda-11.4.1.62-1.src.rpm anaconda-11.4.1.62.tar.bz2 anaconda.spec
我们需要提取 anaconda-11.4.1.62.tar.bz2 这个文件,执行下面的命令,提取到当前目录
代码如下:
rpm2cpio anaconda-11.4.1.62-1.src.rpm | cpio -idv anaconda-11.4.1.62.tar.bz2
注意: cpio参数后的文件路径 "anaconda-11.4.1.62.tar.bz2" 必须和前面查询的相对路径一样,否则提取不成功。相关知识说明cpio参数说明:-t 列出的意思,和"--list"等同,注意,此时列出的是“相对路径”-i 抽取的意思,和"--extract"等同-d 建立目录,和"--make-directories"等同-v 冗余信息输出,和"--verbose"等同rpm参数说明:-q --query 查询-l --list 列出-f --file 指定文件-p --package 指定rpm包
rpm 数据库修复的方法第一种方法:当进行包安装、升级、卸载等操作时,可能损坏RPM DB,需要通过--rebuild参数来修复RPM DB,但有时会碰到这样的问题:
代码如下:
[root@taotips lib]# rpm -v --rebuilddb rpmdb: fatal region error detected; run recovery error: db4 error(-30982) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index
此时需要手动删除/var/lib/rpm目录下的类似 __db.* 的文件
代码如下:
rm -fr /var/lib/rpm/__db*
然后再运行
代码如下:
rpm -v --rebuilddb
即可.第二种方法 :
代码如下:
# cd /var/lib # mv rpm rpm.old # mkdir rpm # rpmdb --initdb # cp rpm.old/Packages rpm # rpmdb --rebuilddb
关于怎么在CentOS中使用rpm包管理器问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。