yum 工具用法

  1. 命令语法
    yum (选项) (参数)

  2. 命令描述
    yum 命令是在 Fedora 和 RedHat 以及 SUSE 中基于 rpm 的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理 RPM 软件包,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

  3. 命令选项
    list 列出可用的 PRM 包
    search 搜索一个包
    install:安装 rpm 软件包;
    update:升级 rpm 软件包;
    remove:删除指定的 rpm 软件包;
    grouplist 列出所有可用的组;
    provides 通过命令名称来搜索其 rpm 包名
    /etc/yum.repos.d/ yum 的配置文件

  4. 实战


  • 使用 yum 安装 texlive 包
[root@localhost Packages]# rpm -ivh texlive-2012-38.20130427_r30134.el7.x86_64.rpm
错误:依赖检测失败:
	texlive-scheme-basic 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
	texlive-collection-latexrecommended 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
	tex-kpathsea 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
	tex-tetex 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要

说明: 这里在安装 texlive 的时候,安装不了,至少要安装四个依赖的包才能安装此包。


[root@localhost Packages]# yum install texlive
已加载插件:fastestmirror
base                                                           | 3.6 kB  00:00:00     
extras                                                         | 3.4 kB  00:00:00     
updates                                                        | 3.4 kB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.btte.net
 * updates: mirrors.cn99.com
。。。。。。。。。。。。。。
事务概要
======================================================================================


安装  1 软件包 (+223 依赖软件包)

说明: 从 yum 安装中可以看出依赖 233 个包,如果使用 rpm 会很麻烦。


  • 使用 list 列出可用的 PRM 包
[root@localhost Packages]# yum list |head -n 20
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.btte.net
 * updates: mirrors.cn99.com
已安装的软件包
GeoIP.x86_64                                1.5.0-11.el7               @anaconda
NetworkManager.x86_64                       1:1.4.0-12.el7             @anaconda
NetworkManager-libnm.x86_64                 1:1.4.0-12.el7             @anaconda
NetworkManager-team.x86_64                  1:1.4.0-12.el7             @anaconda
NetworkManager-tui.x86_64                   1:1.4.0-12.el7             @anaconda
NetworkManager-wifi.x86_64                  1:1.4.0-12.el7             @anaconda
acl.x86_64                                  2.2.51-12.el7              @anaconda
aic94xx-firmware.noarch                     30-6.el7                   @anaconda
alsa-firmware.noarch                        1.0.28-2.el7               @anaconda
alsa-lib.x86_64                             1.1.1-1.el7                @anaconda
alsa-tools-firmware.x86_64                  1.1.0-1.el7                @anaconda
atk.x86_64                                  2.14.0-1.el7               @anaconda
atkmm.x86_64                                2.22.7-3.el7               @anaconda
audit.x86_64                                2.6.5-3.el7                @anaconda

说明:从上例中可以看出,有 mirrors.btte.net 信息出现,这是在告诉用户, 它是从 mirrors.btte.net 这里下载的 RPM 包资源。最左例是 RPM 包名,中间的是版本信息,最右侧是安装信息。如果已安装,最右侧就显示 @base,@updates 或者 @anaconda,他们前面都会有一个 @符号。如果未安装,则会显示 base 或者 anaconda;如果 RPM 包已安装但需要升级,则显示 updates。如果你仔细看看,就会发现 yum list 命令会先列出已经安装的包 (installed package),然后再列出可以安装的包 (available package)。

  • yum 配置文件
[root@localhost Packages]# ls /etc/yum.repos.d
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
  • 配置文件 base 的信息
[root@localhost Packages]# cat /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
.......................
  • 搜索一个包
[root@localhost Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.btte.net
 * updates: mirrors.cn99.com
================================== N/S matched: vim ==================================
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor

  名称和简介匹配 only,使用“search all”试试。
  • 精准搜索包名
[root@localhost Packages]# yum list |grep 'vim'
vim-common.x86_64                           2:7.4.160-2.el7            @base    
vim-enhanced.x86_64                         2:7.4.160-2.el7            @base    
vim-filesystem.x86_64                       2:7.4.160-2.el7            @base    
vim-minimal.x86_64                          2:7.4.160-1.el7            @anaconda
protobuf-vim.x86_64                         2.5.0-8.el7                base     
vim-X11.x86_64                              2:7.4.160-2.el7            base     
vim-minimal.x86_64                          2:7.4.160-2.el7            base 
  • 使用命令 grouplist 列出所有可用的组
[root@localhost Packages]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.btte.net
 * updates: mirrors.cn99.com
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工作站
可用组:
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   智能卡支持
   科学记数法支持
   系统管理
   系统管理工具
完成
  • 使用 remove 卸载 rpm 包及它的依赖包
[root@localhost Packages]# yum remove ppp
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 ppp.x86_64.0.2.4.5-33.el7 将被 删除
--> 正在处理依赖关系 ppp = 2.4.5,它被软件包 1:NetworkManager-1.4.0-12.el7.x86_64 需要
--> 正在检查事务
---> 软件包 NetworkManager.x86_64.1.1.4.0-12.el7 将被 删除
--> 正在处理依赖关系 NetworkManager = 1:1.4.0-12.el7,它被软件包 1:NetworkManager-tui-1.4.0-12.el7.x86_64 需要
--> 正在处理依赖关系 NetworkManager(x86-64) = 1:1.4.0-12.el7,它被软件包 1:NetworkManager-team-1.4.0-12.el7.x86_64 需要
--> 正在处理依赖关系 NetworkManager(x86-64) = 1:1.4.0-12.el7,它被软件包 1:NetworkManager-wifi-1.4.0-12.el7.x86_64 需要
--> 正在检查事务
---> 软件包 NetworkManager-team.x86_64.1.1.4.0-12.el7 将被 删除
---> 软件包 NetworkManager-tui.x86_64.1.1.4.0-12.el7 将被 删除
---> 软件包 NetworkManager-wifi.x86_64.1.1.4.0-12.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

======================================================================================
 Package                   架构         版本                    源               大小
======================================================================================
正在删除:
 ppp                       x86_64       2.4.5-33.el7            @anaconda       852 k
为依赖而移除:
 NetworkManager            x86_64       1:1.4.0-12.el7          @anaconda        10 M
 NetworkManager-team       x86_64       1:1.4.0-12.el7          @anaconda        53 k
 NetworkManager-tui        x86_64       1:1.4.0-12.el7          @anaconda       266 k
 NetworkManager-wifi       x86_64       1:1.4.0-12.el7          @anaconda       144 k

事务概要
======================================================================================
移除  1 软件包 (+4 依赖软件包)

安装大小:11 M

说明:连同四个依赖的包一起卸载。