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基础知识

    计算机的组成及其功能。 现代计算机体系将计算机分为控制器、运算器、存储器、输入设备和输出设备5个部分 *控制器:控制器是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,并根据具体要求进行控制、调度程序、数据、地址,协调计 算机各个部分工作,协调计算机各部分工作及内存、IO设备等的访问 *运算器:运算器是对数据进行各种算数运算和逻辑运算也就是对数据…

    Linux干货 2018-02-25
  • Homework Week-3 用户管理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。  who | cut -f 1 -d \ | uniq “\”后跟一个空格字符 2、取出最后登录到当前系统的用户的相关信息。  who | tail…

    Linux干货 2016-08-24
  • 进程管理常用命令

    Linux系统上的进程查看及管理工具:pstree,ps,pidof,pgrep,top,htop,glances,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup,nice,renice,killall,…CentOS 5 :SysV initCentOS 6 :upstartCentOS 7 :syst…

    Linux干货 2017-05-17
  • 三剑客之一sed命令

    sed sed ‘2p’ /etc/passwd  打印paswwd的第二行 这样执行结果看能看出第二行显示两次 sed -n ‘2p’ /etc/passwd -n 执行后 会取出当前行显示. n是关闭打印  例如[root@cent7 ~]#ifconfig ens33|sed -n &…

    Linux干货 2017-08-13
  • N25_第四周博客作业

    N25_第四周博客作业   1、复制/etc/ske1目录为/home/tuser1,要求/home/tuser1及其内部文件的属组合其他用户均没有任何访问权限。     2、编辑/etc/group文件,添加组hadoop.。             &nb…

    Linux干货 2016-12-24

评论列表(1条)

  • renjin
    renjin 2017-04-21 11:04

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