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 23:27
下一篇 2017-08-14 08:35

相关推荐

  • shell脚本编程小节及作业

    使用read命令来接收输入          使用read来把输入值分配给一个或多个shell变量:         -p:指定要显示的提示     &nbsp…

    Linux干货 2016-08-22
  • Nginx基本使用方法及各模块基本功能

    一、Nginx介绍     Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能,Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,包括新浪、腾讯等知名网站都已使用Nginx作为Web应用…

    Linux干货 2016-01-21
  • LVM应用概要

    LVM — 即Logical Volume  Manager(逻辑卷管理管理),是Linux的一种磁盘管理机制。 LVM可以将物理磁盘以PV(Physical Volume)为单位抽象成VG(Volume Group)。在VG中,最小存储单元是一个PE(Physical Extent)。在VG的基础上再抽象一层,划分出LV(Logical Vol…

    2017-11-28
  • LVM2:创建、使用、扩展、缩减、快照五步骤

    LVM2这是个关键的概念,还是从操作中比较容易理解 1、创建一个至少有两个PV组成的大小为40G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录 注意点:在vmware中添加两块硬盘,但是并不能马上可以查看,需要扫描一下磁盘,磁盘未/dev/sdc,/dev/sdd 然后创建LVM的基…

    Linux干货 2016-09-05
  • M20-1正则表达式有话说

    1、找出ifconfig命令结果中本机的所有ipv4地址  [root@centos7 ~]# ifconfig |grep -E -o '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-…

    Linux干货 2016-08-05
  • 利用varnish构建httpd缓存服务器

    varnish如何存储缓存对象:     file: 单个文件;不支持持久机制;     malloc: 缓存在内存中;     persistent:基于文件的持久存储;(此方式不建议使用) vcl:配置缓存系统的缓存机制;【线程中缓存功…

    Linux干货 2016-06-20