glmapper

yum 指令

字数统计: 1.4k阅读时长: 5 min
2020/10/26 Share

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 简介:

  • 1、[alios.7u2.base.$basearch]: 仓库的ID,可以取任意名字,只要不和其他的ID冲突即可
  • 2、name=xxx: 用于描述容器含义
  • 3、enabled={1|0}: 是否启用这个仓库,0表示不启用,1表示启用,默认是启用的
  • 4、mirrorlist: 列出这个容器可以使用的镜像站点(如果不想使用,可以注释,本案例中没有体现)
  • 5、baseurl=url: 容器地址,mirrorlist 是由 yum 程序自行找镜像站点,baseurl 则是指定一个固定容器地址
  • 6、gpgcheck={1|0}: 是否进行签名合法性检测,0 表示不启用,1表示启用,如果选择启用 gpg 检查,则需要告知其 key 是什么
  • 7、gpgkey=url: 如果启用 gpg 检测,则需要指定 gpgkey 的路径,即使导入过 gpgkey,这里仍然需要手动为其指定路径,这个路径可以是远程服务器上的,也可以是本地的,只要让本地客户端访问到即可

如果两个仓库里的 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
23
$ 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
$ 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 升级

  • yum install/update 软件名称
  • 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 会更好

editing….

参考

原文作者:GuoLei Song

原文链接:http://www.glmapper.com/2020/10/26/linux/linux-yum/

发表日期:October 26th 2020, 9:57:28 am

更新日期:October 31st 2020, 8:27:30 pm

版权声明:转载请注明出处

CATALOG
  1. 1. 工作原理示意图
  2. 2. yum 的配置文件
  3. 3. 配置 yum 数据源
  4. 4. yum 的一些基本功能
    1. 4.1. 查询
      1. 4.1.1. yum search xxx
      2. 4.1.2. yum info xxx
      3. 4.1.3. yum list
      4. 4.1.4. yum list xxxx*
      5. 4.1.5. yum list updates
    2. 4.2. 安装 or 升级
    3. 4.3. 删除
    4. 4.4. 软件组
  5. 5. 参考