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

相关推荐

  • N21—-第一周课程练习题

    1、描述计算机的组成及其功能。 我们现在通常理解为计算机是由硬件系统+软件系统组成的,根据冯·诺依曼体系结构。计算机主要由五大部件组成:      运算器(Datapath): 计算机中执行各种算术和逻辑运算操作的部件      控制器(Control):是整个计算机的中枢神经,…

    Linux干货 2016-07-12
  • N22-第九周作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i log_user declare -i notlog_user while read&n…

    Linux干货 2016-10-24
  • M20用户和组练习题和作业

    1、创建用户gentoo ,附加组为bin 和root ,默认shell为/bin/csh ,注释信息为"Gentoo Distribution"  useradd gentoo -G bin,boot -s /bin/csh -c "Gentoo Distribution" 2 、创建下面的用户、组和组成员…

    Linux干货 2016-08-03
  • egrep及文本处理工具十三道实例

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    2018-03-20
  • Linux路由实验

    一    实验背景:路由器的功能是将不同网段的主机建立通信,本次试验是在使用linux主机当作路由器,完成主机间通信。如下图所示 二、实验环境:主机A和B为CentOS7.2,主机C和D为CentOS6.8,且C和D上分别都有两块网卡 三、实验步骤     注意:为避免干扰项,需将每台主机…

    Linux干货 2016-09-07
  • 初识varnish

      实验拓扑 varnish主机    地址192.168.150.137 后端web主机     web1静态服务192.168.150.138     web2动态服务192.168.150.140 varnish的安装及开启 varnish主机: ~]# yum info varni…

    Linux干货 2017-01-05