一:二进制应用程序组成部分
二进制文件(which command)、库文件(ldd `which command`)、配置文件(.conf)、帮助文件(.README)等
二:rpm包文件的组成
rpm文件、rpm元数据(如名称、依赖性关系等)、安装或卸载时运行的脚本
三:rpm包数据库:
1.组成部分(通过 ls /var/lib/rpm 来查看):
2.rpm数据库的作用与常用问题:
当安装已存在的rpm包时,系统通过数据库中rpm包安装记录得知已安装,于是会显示安装失败。但当用rm删除程序的一个相关文件时,程序有可能不能正常运行,但rpm数据库并不会记录,所以不会提示程序不存在。此时,当用rpm重新安装程序时,会提示程序已存在。
四: rpm 包管理器
①安装程序常用命令选项:rpm -ivh file.rpm
解析:-i (install) 安装命令
-v 显示详细信息
-h 显示进度条
②程序安装和删除常见问题(重点):
1)包的依赖性问题
我们知道,rpm包具有依赖性,这将导致某个rpm包安装失败,此时要用–nodeps 来忽略依赖性,强制安装或强制删除。例如以下httpd包的安装过程
同理,删除某程序时也存在包的依赖问题,这时,用rpm -e file.rpm -nodeps来解决就好了。
2)程序因缺少某文件而不能使用,需要重装程序时,单纯使用-ivh已经不能解决问题,这时应使用–replacepkgs,例如下面这种情况:
3)当安装rpm包时发现已存在旧包,想要删除旧包装新包时,用-Uvh(update),如下已有aide命令老版本,想要用新版本替换时,用-Uvh
同理,有时我们想单纯的为程序升级,想要在有旧包的前提下再装新包,不存在时旧不更新,我们可以用 –Fvh
(注: 这两种选项都会删除旧包装新包。)
4)但有时,我们想要保留旧包,并安装新包,此时要用到–replacefiles,我们还拿aide命令rpm包开刀:
5)当我们安装旧包时发现已存在新包时,想要保留新包的前提下安装旧包时,可用–replacefiles ,但必须搭配–oldpackage,如下例子:
6)–force (包含–replacepkgs, –replacefiles, –oldpackage的功能),常用于在不删除旧包的前提下,新包的安装。
7)当安装rpm文件时,系统会提示公钥未导入,此时我们可以通过以下两种方式来解决
方法1: –nosignature: 不检查来源合法
方法2:当然,第一种方法显然是一种不安全的做法,此时,我们使用–import GPG-KEY….来导入公钥,操作过程如下
第一步:查询当前系统所有已导入的公钥:rpm -qa “gpg-pubkey*”
第二步:如未导入则导入公钥:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-(6/7)
第三步:安装rpm包,此时发现已经不会显示警告
④包的查询:
-qa command 查看程序的所有rpm包 —————(常用)
原创文章,作者:yunyunyu,如若转载,请注明出处:http://www.178linux.com/84648