Linux中的包管理

1. RPM介绍

rpm是linux中的包管理软件,通过rpm用户可以对rpm包进行查询、安装、卸载、升级和校验等操作。

1.1 查询

查询
-q:可以查看某个包是否已经安装
-qa:查看系统已经安装的所有包
-qi:查询某个安装包的详细情况
-ql:查询安装某个包之后会生成哪些文件
-qc:查询某个软件的配置文件
-qd:查询某个软件的所有文档
–script:查询包中所包含的脚本文件

1.2 安装

安装
-ivh:安装某软件包,并显示安装过程和进度条
–force:强制安装
–nodeps:忽略依赖关系
–noscripts:不执行包中的脚本文件

1.3 卸载

卸载
-e:卸载某个软件

1.4 升级、降级

升级、降级
-U:如有有旧版本,就升级;如果没有旧版本,则执行安装操作
-F:如果有旧版本,就升级;如果没有旧版本,则不执行任何操作
–oldpackage:执行降级操作

1.5 验证rpm包完整性

  1. 首先需要导入公钥文件才能进行完整性的校验 
    rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
  2. 然后通过-K选项进行完整性的校验:

[root@localhost Packages]# rpm -K tree-1.6.0-10.el7.x86_64.rpm 
tree-1.6.0-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

1.6 解开rpm安装包

有时候我们需要解开rpm安装包来安装包中某一个单独的文件,这些时候我们就需要用到rpm2cpio工具了: 
[root@localhost tree]# rpm2cpio ../tree-1.6.0-10.el7.x86_64.rpm |cpio -id 
177 blocks

注意 
rpm有一个数据库文件位于/var/lib/rpm/中,其中维护着所有已经安装的软件的元数据等信息,如果这个库文件被损坏会影响rpm的正常运行,将无法再通过rpm -q查询到已经安装到的软件的信息。


2. YUM

yum为rpm的前台工具,因为rpm难以解决软件安装的依赖性问题,所以yum应运而生。yum可以自动解决软件依赖性问题,其底层依赖于rpm运行。 
yum为C/S架构,需要yum服务端和客户端,服务端存放rpm包和rpm包的元数据。yum客户端会有一个缓存用于存放缓存到本地的rpm包的元数据。

2.1 配置yum源

yum需要在/etc/repos.d/下创建后缀为.repo格式的文件来配置yum源


  1. [base] #yum源ID
  2. name=CentOS $releasever cdrom #yum源的名字
  3. baseurl=file:///media/cdrom #yum源的地址,支持http,ftp,file三种格式
  4. gpgcheck=1 #是否开启包完整性验证,0为不开启,1为开启
  5. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #验证包完整性的公钥存放的地址

注意

  • yum源的版本需要和系统版本匹配
  • yum源ID不能有空格和特殊符号
  • 可以采用变量:$releaserver:当前系统版本 $basearch:当前系统架构
  • 一个baseurl可以配置多个地址

2.2 查看可用的yum源


  1. [root@localhost yum.repos.d]# yum repolist
  2. Loaded plugins: fastestmirror, langpacks
  3. Loading mirror speeds from cached hostfile
  4. repo id repo name status
  5. base CentOS 7 cdrom 9,363
  6. repolist: 9,363

2.3 安装、卸载、升级软件包

yum install:安装软件包
-y:不需要用户执行交互,自动安装
-q:静默模式安装
yum install /路径/包名:安装本地软件包,自动解决依赖关系

yum remove|erase:卸载软件包

yum update:升级软件包

2.4 安装、卸载、升级组包

yum groupinstall:安装组包

yum groupremove:卸载组包

yum groupupdate:升级组包

2.5 清除缓存

缓存文件位于/var/cache/yum下 
yum clean all #清除缓存

2.6 搜寻软件包

yum search 软件名

2.7 查看包信息

yum info 软件名

2.8 查看执行历史,回退


  1. [root@localhost yum.repos.d]# yum history
  2. Loaded plugins: fastestmirror, langpacks
  3. ID | Login user | Date and time | Action(s) | Altered
  4. ——————————————————————————-
  5. 2 | root <root> | 20170418 05:26 | Install | 1
  6. 1 | System <unset> | 20170322 02:18 | Install | 1394
  7. history list
回退 
yum history undo 2

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

(0)
王子豪王子豪
上一篇 2017-04-17
下一篇 2017-04-17

相关推荐

  • Linux终端和伪终端简述

    本文简述Linux各种类型终端的区别以及如何用命令查看终端类型

    Linux干货 2018-03-26
  • 优秀程序员的十个习惯

    在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer)。经过一段时间后,这些人也许能够成为一个优秀的编码人员,他们会非常熟悉如何用计算机语言来完成自己的工作。但是,如果你要成为一个优秀的程序员,你还可以需要有几件事你需…

    Linux干货 2015-04-01
  • linux用户和权限管理

    0.用户 1、建用户:adduser nuoline //新建nuoline用户passwd nuoline //给nuoline用户设置密码 2、建工作组groupadd test //新建test工作组 3、新建用户同时增加工作组useradd -g test nuoline //新建phpq用户并增加到test工作组 注:…

    Linux干货 2016-08-05
  • 深入了解正则表达式与grep应用

    刚开始学习正则表达式时候,感觉和看无字天书没什么分别,迷茫了一段时间后,仔细去理解,慢慢你会发现也没什么的。认真去钻研了,多练习,是可以理解他们的含义的。也许正如老师所言,学习linux ,入门的确很陡峭,对于我这个基础薄弱,智商低于80的人来说的确很吃力。关于正则概念的就不去描述了,说起来真的不好表达,下面通过一些实例来进行深入理解吧。 1.显示当前系统上…

    2017-11-01
  • 在CentOS5,6上破解和加密口令

    在CentOS5,6上:    破解和加密口令:     破解口令方法一: 破解口令方法二:    重启虚拟机进入救援模式: 备注:生产中不用虚拟机时不要挂载光盘;防止光盘引导破解密码 加密口令: 编辑配置文件: /etc/grub.conf

    2017-05-16
  • 生产环境网卡绑定汇总(bonding,team)

    生产环境网卡绑定汇总 1 什么是bonding,team?   1.1 bonding,team简介    在了解正式的概念之前,我们先从不太专业的角度取解释这两个名词。    所谓bonding就是联结。以下是来自柯林斯英汉双解大词典对于bonding的解释。    the proces…

    Linux干货 2017-05-07

评论列表(1条)

  • renjin
    renjin 2017-04-21 11:04

    主要介绍了包管理器rpm和yum的使用,内容介绍的很详细,排版也很不错,加油!加油!