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 21:29
下一篇 2017-04-17 22:07

相关推荐

  • Linux软件包管理

    一、rpm包管理工具 1、rpm包简介 rpm是redhat的软件包管理器。rpm包管理器全称rpm: Redhat Package Manager RPM  Package Manager。它的软件包后缀也为.rpm。除此外,debian,deb文件有dpkg包管理器。 rpm包的命名方式: 源代码:name-version.tar.{gz|bz…

    Linux干货 2016-08-21
  • 计算机的组成和Linux发行版本介绍

    计算机的组成及功能 计算机的五大组成,如下 各部分的作用; 控制单元和算数逻辑单元是CPU的两个主要组成部分  控制单元主要协调各组件与各单元间的工作  算数逻辑单元主要负责程序运算与逻辑判断 内存,DRANM(Dynamic Random Access Memory)动态随机访问内存;CPU读取的数据都是从内存读取来的。 输入单元,下指…

    2017-07-02
  • Homework Week-2 Linux文件管理

    1、Linux上的文件管理命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理工具:cp, mv, rm         cp命令:copy  源文件  目标文件                单源复制:cp [O…

    Linux干货 2016-08-22
  • 端口转发实例

    什么是端口转发?      端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口。 为什么需要端口转发? …

    2017-04-13
  • Linux文件类型

    Linux文件类型常见的有:普通文件、目录文件、字符设备文件和块设备文件、符号链接文件等。 1、普通文件,颜色为白色 纯文本档 二进制文件 数据格式文件 2、目录文件,颜色为蓝色 当我们在某个目录下执行,看到有类似 drwxr-xr-x ,这样的文件就是目录,目录在Linux是一个比较特殊的文件。首字符是【d】字母。 3、字符设备和块设备…

    Linux干货 2016-10-16
  • 正则表达式

    什么是正则表达式? 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为”元字符”)。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,许多程序设计语言都支持利用正则表达式进行字符串操作。正则表达式是烦琐的,但它是强大的,学会之后的应用会让你除…

    Linux干货 2017-06-01

评论列表(1条)

  • renjin
    renjin 2017-04-21 11:04

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