rpm软件包管理

一:二进制应用程序组成部分

二进制文件(which command)、库文件(ldd `which command`)、配置文件(.conf)、帮助文件(.README)等

二:rpm包文件的组成

rpm文件、rpm元数据(如名称、依赖性关系等)、安装或卸载时运行的脚本

三:rpm包数据库:

1.组成部分(通过 ls /var/lib/rpm 来查看):

rpm软件包管理

 1)程序包名称及版本
 2)依赖关系 功能说明
 3)包安装后生成的各文件路径及校验码信息

2.rpm数据库的作用与常用问题:

当安装已存在的rpm包时,系统通过数据库中rpm包安装记录得知已安装,于是会显示安装失败。但当用rm删除程序的一个相关文件时,程序有可能不能正常运行,但rpm数据库并不会记录,所以不会提示程序不存在。此时,当用rpm重新安装程序时,会提示程序已存在。

四: rpm  包管理器 

①安装程序常用命令选项:rpm -ivh file.rpm

解析:-i (install) 安装命令

         -v  显示详细信息

         -h  显示进度条

②程序安装和删除常见问题(重点):

1)包的依赖性问题

 我们知道,rpm包具有依赖性,这将导致某个rpm包安装失败,此时要用–nodeps 来忽略依赖性,强制安装或强制删除。例如以下httpd包的安装过程

rpm软件包管理

同理,删除某程序时也存在包的依赖问题,这时,用rpm -e file.rpm -nodeps来解决就好了。

2)程序因缺少某文件而不能使用,需要重装程序时,单纯使用-ivh已经不能解决问题,这时应使用–replacepkgs,例如下面这种情况:

rpm软件包管理

3)当安装rpm包时发现已存在旧包,想要删除旧包装新包时,用-Uvh(update),如下已有aide命令老版本,想要用新版本替换时,用-Uvh

同理,有时我们想单纯的为程序升级,想要在有旧包的前提下再装新包,不存在时旧不更新,我们可以用 –Fvh

(注:   这两种选项都会删除旧包装新包。)

rpm软件包管理

4)但有时,我们想要保留旧包,并安装新包,此时要用到–replacefiles,我们还拿aide命令rpm包开刀:

rpm软件包管理

rpm软件包管理

5)当我们安装旧包时发现已存在新包时,想要保留新包的前提下安装旧包时,可用–replacefiles ,但必须搭配–oldpackage,如下例子:

rpm软件包管理

6)–force  (包含–replacepkgs, –replacefiles, –oldpackage的功能),常用于在不删除旧包的前提下,新包的安装。

7)当安装rpm文件时,系统会提示公钥未导入,此时我们可以通过以下两种方式来解决

 方法1: –nosignature: 不检查来源合法

rpm软件包管理

方法2:当然,第一种方法显然是一种不安全的做法,此时,我们使用–import GPG-KEY….来导入公钥,操作过程如下

 第一步:查询当前系统所有已导入的公钥:rpm -qa “gpg-pubkey*”   

 第二步:如未导入则导入公钥:rpm –import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-(6/7)

 第三步:安装rpm包,此时发现已经不会显示警告

④包的查询:

-qa   command 查看程序的所有rpm包  —————(常用rpm软件包管理rpm软件包管理

-qf   command 查看一个文件来自那个rpm包
-qp rpmfile  查看尚未安装的程序包的详细信息
– q -changelog  版本更新日志
-qc 查询软件包的配置文件 (.conf)
-qd 查询软件包的帮助文档(.README)
-ql (包含-qc -qd) 查询软件包所安装到系统当中的所有文件路径  ————(常用rpm软件包管理rpm软件包管理
-qi  查询软件包的详细信息  —————(常用rpm软件包管理rpm软件包管理
-q –scripts 查询软件包自带的脚本
-q –provides 查询自身的功能
-qR 查询实现自身的功能需要什么能力


原创文章,作者:yunyunyu,如若转载,请注明出处:http://www.178linux.com/84648

(0)
上一篇 2017-08-13 23:27
下一篇 2017-08-14 08:35

相关推荐

  • 进程管理常用命令

    Linux系统上的进程查看及管理工具:pstree,ps,pidof,pgrep,top,htop,glances,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup,nice,renice,killall,…CentOS 5 :SysV initCentOS 6 :upstartCentOS 7 :syst…

    Linux干货 2017-05-17
  • 基于NFS服务的wordpress站点

    实验要求:             (1) nfs server导出/data/web,在目录中提供wordpress;     (2) nfs client挂载nfs server导出的文件系统至/data/web; …

    2017-06-11
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@loalhost ~]# (umask 077; cp -r /etc/skel /home/user1) 2、编辑/etc/group文件,…

    Linux干货 2016-09-06
  • bash脚本之进阶

    bash脚本 1、终端打印 1、单双引号(echo) 双引号: ①在双引号里面打不出! ②双引号,可以在文本中使用“;”,“;”在bash中被用作命令定界符。 单引号: 变量替换在单引号中无效。 2、printf:不会自动添加换行符,要手动添加 如下: 结果: 3、补充: echo 要使用转义系列需要加e,!号除外 2、变量和环境变量 脚本语言通常…

    Linux干货 2016-11-28
  • bash中的算术运算及条件测试

    bash的算术运算 +, -, *, /, %取模(取余), **(乘方) 实现算术运算: (1) let var=算术表达式 (2) var=$[算术表达式] (3) var=$((算术表达式)) (4) var=$(expr arg1 arg2 arg3 …) (5) declare –i var = 数值 (6) echo ‘算术表达式’ …

    Linux干货 2017-04-17