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

相关推荐

  • RHCE系列之ntp服务器—-实践篇

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1319520 上篇Linux实战部署系列之ntp服务器—-理论篇为大家介绍时间的相关概念和ntp的原理,本篇博文将带大家一起部署生产环境中实现简单…

    Linux干货 2016-08-15
  • N24_阿龙弟弟 学习计划/目标/宣言

    嗨,大家好,这是我的第一篇文章。很高兴来到马帮门徒这个大家庭。 学习计划:没有自己的计划,跟着马哥课程的进度来吧,以周为单位,确保每周任务完成; 学习目标:掌握应有的运维能力,做一名合格的Linux运维工程师,提升自我价值,过更好的生活; 学习宣言:Be a better man(Not Only Linux)!

    Linux干货 2016-10-25
  • Linux软件包管理工具yum详解

    yum介绍 yum客户端的使用 配置文件项作说明: 案例repo配置文件。 创建yum源命令(yum-config-manager) yum list相关命令 yum安装 yum更新和升级 yum查找和显示 yum删除程序 查看仓库 实战演练本地yum仓库(光盘) YUM内置变量 创建YUM仓库(http) yum介绍 yum命令是在Fedora和RedHa…

    Linux干货 2016-09-07
  • bash编程基础(二)补

       bash脚本编程         脚本文件格式:         第一行,顶格:#!/bin/bash         注释信息:#         代码注释:  …

    Linux干货 2016-12-23
  • 马哥教育网络班20期+第5周课程练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; grep "^[[:space:]]\+.*" /boot/grub/grub.conf   2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; grep&nb…

    Linux干货 2016-07-12