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> | 2017–04–18 05:26 | Install | 1
  6. 1 | System <unset> | 2017–03–22 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

相关推荐

  • N22-第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# ll -d  /etc/skel/drwxr-xr-x. 3 root root 74 3月&…

    Linux干货 2016-09-19
  • Linux网络配置

    (1)、ifcfg家庭命令配置: ifconfig/route/netstat ifup/ifdown   (2)、ip命令配置: ip addr | route | link   (3)、修改配置文件 IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE 路由相关…

    2018-01-30
  • Linux基础 & bash相关

    Q1:Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理类命令: cd, ls, touch, cp, mv, rm, cat, tac, more, less, tail, head; 详细介绍以上命令: cd: 在Linux文件系统上,可以使用切换目录命令cd将shell会话切换到另一个目录。 命令格式: ~]#&nbsp…

    Linux干货 2016-11-06
  • 用户和组管理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@suywien ~]# who | cut -d ‘ ‘ -f1 | uniq -c 2 root [root@suywien ~]# 2、取出最后登录到当前系统的用户的相关信息。 [root@suywien ~]# who | tail -1 | cut…

    Linux干货 2018-03-18
  • N25-第二周博客作业

    第二周博客作业 1.Linux上的文件管理类命令都有哪些,其常用的使用方法和演示 2.bash的工作特性之命令执行状态返回值和命令行展开所涉及内容演示及其实例 3.请使用命令行展开功能完成以下练习;    (1)创建/tmp的目录下a_c,a_d,b_c,b_d     (2) 创建/tmp/mylinux目录下的 4…

    Linux干货 2016-12-11
  • 20161028第9天作业

    20161028第9天作业 1、编写脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问” 2、编写脚本/root/bin/checkdisk.sh,检查磁盘分区空间和inode使用率率,如果超过80%,就发广播…

    Linux干货 2016-10-30

评论列表(1条)

  • renjin
    renjin 2017-04-21 11:04

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