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)
yunyunyuyunyunyu
上一篇 2017-08-13
下一篇 2017-08-14

相关推荐

  • 文本处理三兄弟(grep,sed,awk)

    linux文本处理三剑客: grep:文本过滤工具 grep  egrep=grep -e  fgrep sed:流编辑器  处理多个行  awk:文本编辑工具,格式化工具 grep [OPTIONS] PATTERN [FILE…] : 文本处理搜索工具,根据用户指定的“模式”对目标文本进行匹配检查;打印匹…

    Linux干货 2017-04-01
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@centos7 ~]# cp -r /etc/skel/ /home/tuser1 [root@centos7 ~]# chmod …

    Linux干货 2017-01-16
  • Nginx相关配置及其应用

    LB Cluster: 传输层:lvs、nginx、haproxy 应用层:nginx(http, https, smtp, pop, imap), haproxy(http), httpd(http/https), ats, perlbal, pound, … nginx load balancer: tcp/udp   nginx …

    Linux干货 2016-11-11
  • 第二周总结(文件操作命令、用户及组权限管理、BASH命令行展开与执行命令返回值、命令别名使用、执行结果引用、通配符使用)

    1、常见文件管理命令分类         1)文件内容查看(cat、tca、more、less、head、tail)         2)文件字符替换(tr、sed、awk等)         3)文…

    Linux干货 2017-01-31
  • TCP常见问题总结

    TCP协议和UDP协议的区别是什么 TCP协议是有连接的,有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握手建立连接,会话结束之后也要结束连接。而UDP是无连接的 TCP协议保证数据按序发送,按序到达,提供超时重传来保证可靠性,但是UDP不保证按序到达,甚至不保证到达,只是努力交付,即便是按序发送的序列,也不保证按序送到。 TCP协议…

    Linux干货 2017-09-02
  • 优云实践:巧用Salt,实现CMDB配置自动发现

    随着互联网+新形势的发展,越来越多的企业步入双态(稳敏双态)IT时代,信息化环境越来越复杂,既有IOE三层架构,也有VCE、Openstack等云虚拟化架构和互联网化的分布式大数据架构。所以,企业急需建立一套合适的配置管理库(CMDB),像人类“大脑”一样统一存储从基础架构到业务应用各层面的配置信息,以便协调“身体”(运维系统)各部分完成复杂的运维工作。 C…

    系统运维 2016-07-26