yum 指令

yum(Yellowdog Updater Modified):是一个基于 RPM 的软件包管理器,能够从指定服务器自动下载RPM包并且安装,可以处理软件之间的依赖关系,一次性安装所有依赖的软件包,无需一个个下载安装。

工作原理示意图

yum 客户端及服务器的工作原理如下图所示

yum 的配置文件

配置文件所在目录:/etc/yum.repos.d

1
2
3
4
5
6
7
# vim /etc/yum.repos.d/alios.repo
----------------------------------------
[alios.7u2.base.$basearch]
name=alios
baseurl=http://yum.tbsite.net/alios/7u2/os/$basearch/ # $basearch:系统基础架构,如 x86_64
gpgcheck=0
----------------------------------------

x.repo 文件相关配置 key 简介:

如果两个仓库里的 RPM 包是一样的,一个在远程服务器上,另一个在本地光盘上,那么本地光盘的访问速度通常会快于远程服务器上。在配置文件中,我们可以定义这样的两个仓库,为其中一个设定优先级

注: gpgme.GpgmeError: (7, 32870, u’\ufffd\ufffd\ufffd\u8c78\ufffd\ufffd\ufffd\u02b5\ufffd\ufffd\ufffd ioctl \ufffd\ufffd\ufffd\ufffd’) #如果执行报这个错,表示当前系统字符编码不支持 Unicode,改一下就好

配置 yum 数据源

默认情况下 yum 使用的源都是国外的地址,那我们如果期望下载速度更快一些时,就可以考虑使用国内的一些源,比如 aliyun 提供的, 以配置 docker yum 数据源为例:

1
2
3
4
5
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:bestyumcache, fastestmirror, langpacks
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

然后就可以在 /etc/yum.repos.d/ 下看到 docker-ce.repo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ sudo cat docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
# ...省略其他

yum 的一些基本功能

yum 基本功能主要包括:查询、删除、更新/升级以及软件组等

查询

yum 查询有以下几种姿势,这里挨个举例。

  • yum search xxx
    搜索某个软件名称或者描述的重要关键字

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ yum search java
    已加载插件:bestyumcache, branch, fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    kubernetes 579/579
    ================================================================================ N/S matched: java =================================================================================
    abrt-java-connector.x86_64 : JNI Agent library converting Java exceptions to ABRT problems
    aether-javadoc.noarch : Java API documentation for Aether
    alicpp-gcc492-netlib-java.x86_64 : alicpp-gcc492-netlib-java-1.1.2.odps
    ant-antunit-javadoc.noarch : Javadoc for ant-antunit
    ant-contrib-javadoc.noarch : Javadoc for ant-contrib
    ant-javadoc.noarch : Javadoc for ant
  • yum info xxx
    列出软件功能(不太方便透露的信息,以 xxxx 代替了)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $ yum info docker
    已加载插件:bestyumcache, branch, fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    可安装的软件包
    名称 :docker
    架构 :x86_64
    版本 :xxxx
    发布 :xxxx
    大小 :103 M
    源 :xxxx
    简介 :xxxx
    网址 :xxxx
    协议 : Commercial
    描述 : CodeUrl:git@xxxx
    : CodeRev:e3xx79d
    : AoneLog: xxxx
    : AoneUrl:xxxx
    : xxx container service docker-xxx; branch: vxxx

  • yum list
    列出 yum 服务器上面所有的软件名称,这里就不列了(下面一个是按规则搜的)

  • yum list xxxx
    找出以 xxx 开头的软件名称

1
2
3
4
5
$ yum list docker
已加载插件:bestyumcache, branch, fastestmirror, langpacks
Loading mirror speeds from cached hostfile
可安装的软件包
docker.x86_64 version-xxx xxxx
  • yum list updates
    列出 yum 服务器上可提供本机进行升级的软件(返回的信息是 yum list 的子集,这里也不举例了)

  • 安装 or 升级

  • 1、yum install/update 软件名称

  • 2、 yum install 软件名称 -y #安装过程中免输入y确认

  • 删除
    yum remove 软件名称

  • 软件组

  • yum grouplist //查看容器和本机上可用与安装过的软件组

  • yum groupinfo group_name //查看group内所有组名称

  • yum install/remove group_name //安装与删除

除此之外,如果我们想升级所有的软件包,可以通过如下方式搞定

  • yum -y update 升级所有包,改变软件设置和系统设置,系统版本内核都升级
  • yum -y upgrade 升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变

已经上线的用 yum -y upgrade 比较稳,全新的用 yum -y update 会更好

参考

作者

卫恒

发布于

2020-10-26

更新于

2022-04-23

许可协议

评论