yum 指令
yum(Yellowdog Updater Modified):是一个基于 RPM 的软件包管理器,能够从指定服务器自动下载RPM包并且安装,可以处理软件之间的依赖关系,一次性安装所有依赖的软件包,无需一个个下载安装。
工作原理示意图
yum 客户端及服务器的工作原理如下图所示
yum 的配置文件
配置文件所在目录:/etc/yum.repos.d
1 | # vim /etc/yum.repos.d/alios.repo |
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 | $ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
然后就可以在 /etc/yum.repos.d/
下看到 docker-ce.repo
1 | $ sudo cat docker-ce.repo |
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 antyum 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: vxxxyum list
列出 yum 服务器上面所有的软件名称,这里就不列了(下面一个是按规则搜的)yum list xxxx
找出以 xxx 开头的软件名称
1 | $ yum list docker |
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 会更好