yum的全称为Yellow dog Updater,Modified.是一个基于RPM的shell前端包管理器,能够从指定的服务器上自动下载并安装或更新软件、删除软件。yum最大的优点是可以自动解决依赖关系。RedHat和Centos的版本为5以上的都会默认安装yum。

1.配置文件

yum的配置文件分为两部分:main和repository

(1)main部分定义了全局配置选项,整个yum配置文件应该只有一个main。常位于/etc/yum.conf中。详细参数如下所示:

cachedir=/var/cache/yum         #yum下载的RPM包的缓存目录
keepcache=0                        #缓存是否保存,1保存,0不保存。
debuglevel=2                       #调试级别(0-10),默认为2
logfile=/var/log/yum.log         #yum的日志文件所在的位置
exactarch=1             #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1             #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1             #有1和0两个选择,分别代表是否进行gpg校验。这个选项如果设置在[main]部分,则对每个repository都有效。默认值为0
plugins=1             #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
installonly_limit=3         #允许保留多少个内核包。
exclude=selinux*         #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。

(2)repository部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d目录下的各文件中。在该目录下,存在以.repo为后缀的文件。repo文件是yum仓库的配置文件后缀,通常一个repo文件中可以设置多个yum仓库源,当安装和升级时yum会读取此配置文件,到yum仓库下载所需的rpm包并安装。

在repo文件中,每一个以方括号开始的部分都是一个"源"。例如在CentOS-Base.repo:

[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/ #该源的http地址,baseurl支持http、file、ftp三种
gpgcheck=1 #开启gpg验证
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #定义gpgkey的地址

还有其他参数:
enabled是否启用这个yum仓库地址,0表示不启动,1表示启动。也可通过yum 的 --enablerepo=[repo_name] 和 --disablerepo=[repo_name] 选项,方便地启用和禁用指定的软件仓库

2.常用命令

yum的命令格式如下:

yum [options] [command] [package]

其中的[options]是可选的,常用选项包括

  • -h(帮助)
  • -y(当安装过程提示选择全部为"yes")
  • -q(不显示安装的过程)

[command]为所要进行的操作
[package …]是操作的对象。

2.1yum repolist命令
显示所有仓库:

[root@node1 yum.repos.d]# yum repolist all
已加载插件:langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
源标识                                                源名称                                                   状态
C7.0.1406-base/x86_64                                 CentOS-7.0.1406 - Base                                   禁用
C7.0.1406-centosplus/x86_64                           CentOS-7.0.1406 - CentOSPlus                             禁用
C7.0.1406-extras/x86_64                               CentOS-7.0.1406 - Extras                                 禁用
C7.7.1908-centosplus/x86_64                           CentOS-7.7.1908 - CentOSPlus                             禁用
C7.7.1908-extras/x86_64                               CentOS-7.7.1908 - Extras                                 禁用
C7.7.1908-fasttrack/x86_64                            CentOS-7.7.1908 - Fasttrack                              禁用
C7.7.1908-updates/x86_64                              CentOS-7.7.1908 - Updates                                禁用
!base/7/x86_64                                        CentOS-7 - Base                                          启用: 10,072
base-debuginfo/x86_64                                 CentOS-7 - Debuginfo                                     禁用
base-source/7                                         CentOS-7 - Base Sources                                  禁用
c7-media                                              CentOS-7 - Media                                         禁用
centos-kernel/7/x86_64                                CentOS LTS Kernels for x86_64                            禁用
centos-kernel-experimental/7/x86_64                   CentOS Experimental Kernels for x86_64                   禁用
centosplus/7/x86_64                                   CentOS-7 - Plus                                          禁用
centosplus-source/7                                   CentOS-7 - Plus Sources                                  禁用
cr/7/x86_64                                           CentOS-7 - cr                                            禁用
!extras/7/x86_64                                      CentOS-7 - Extras                                        启用:    448
extras-source/7                                       CentOS-7 - Extras Sources                                禁用
fasttrack/7/x86_64                                    CentOS-7 - fasttrack                                     禁用
!updates/7/x86_64                                     CentOS-7 - Updates                                       启用:  1,158
updates-source/7                                      CentOS-7 - Updates Sources                               禁用
repolist: 11,678

显示所有可用的仓库:

[root@node1 yum.repos.d]# yum repolist enabled
已加载插件:langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
源标识                                                    源名称                                                     状态
!base/7/x86_64                                            CentOS-7 - Base                                            10,072
!extras/7/x86_64                                          CentOS-7 - Extras                                             448
!updates/7/x86_64                                         CentOS-7 - Updates                                          1,158
repolist: 11,678

2.2 yum 安装命令
安装命令格式:

yum install PACKAGE #安装某个包
yum groupinstall GROUP #安装某个软件组

例如:安装httpd服务

[root@node1 ~]# yum install httpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                                | 3.6 kB  00:00:00     
 * base: mirrors.huaweicloud.com
 * epel: ftp.riken.jp
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
base                                                                                                | 3.6 kB  00:00:00     
docker-ce-stable                                                                                    | 3.5 kB  00:00:00     
epel                                                                                                | 4.7 kB  00:00:00     
extras                                                                                              | 2.9 kB  00:00:00     
updates                                                                                             | 2.9 kB  00:00:00     
(1/3): updates/7/x86_64/primary_db                                                                  | 7.1 MB  00:00:01     
(2/3): epel/x86_64/updateinfo                                                                       | 1.0 MB  00:00:39     
(3/3): epel/x86_64/primary_db                                                                       | 6.9 MB  00:06:14   

2.3 yum 升级命令
更新命令如下:

yum update    #更新系统中所有需要更新的包
yum update PACKAGE #更新某个包

例如:更新httpd服务

2.4 yum 查找命令
查找命令如下:

yum list    #显示软件源中可用的包
yum list installed #显示系统中已经安装过的包
yum info PACKAGE  #显示某个包的信息

例如:

[root@node1 yum.repos.d]# yum list installed
已加载插件:langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
已安装的软件包
GConf2.x86_64                                           3.2.6-8.el7                              @anaconda                 
GeoIP.x86_64                                            1.5.0-11.el7                             @anaconda                 
ModemManager.x86_64                                     1.6.10-1.el7                             @anaconda                 
ModemManager-glib.x86_64                                1.6.10-1.el7                             @anaconda                 
MySQL-python.x86_64                                     1.2.5-1.el7                              @linkoop-yum-http         
NetworkManager.x86_64                                   1:1.10.2-13.el7                          @anaconda                 
NetworkManager-adsl.x86_64                              1:1.10.2-13.el7                          @anaconda                 
NetworkManager-glib.x86_64                              1:1.10.2-13.el7                          @anaconda                 
NetworkManager-libnm.x86_64                             1:1.10.2-13.el7                          @anaconda                 
NetworkManager-libreswan.x86_64                         1.2.4-2.el7                              @anaconda                 
NetworkManager-libreswan-gnome.x86_64                   1.2.4-2.el7                              @anaconda                 
NetworkManager-ppp.x86_64                               1:1.10.2-13.el7                          @anaconda                 
NetworkManager-team.x86_64                              1:1.10.2-13.el7                          @anaconda                 
NetworkManager-tui.x86_64                               1:1.10.2-13.el7                          @anaconda                 
NetworkManager-wifi.x86_64                              1:1.10.2-13.el7                          @anaconda                 
PackageKit.x86_64                                       1.1.5-1.el7.centos                       @anaconda                 
PackageKit-command-not-found.x86_64                     1.1.5-1.el7.centos                       @anaconda                 
PackageKit-glib.x86_64                                  1.1.5-1.el7.centos                       @anaconda                 

2.5 yum 删除命令
删除命令如下:

yum remove PACKAGE #删除某个包
yum groupremove GROUP #删除某个软件组

2.6 yum 清除命令
命令如下:

yum clean #清除使用yum所生成的缓存文件

3.更换yum源

例如:更换成阿里云yum源:
1)备份当前yum源防止出现意外还可以还原回来

cd /etc/yum.repos.d/
cp /CentOS-Base.repo /CentOS-Base-repo.bak

2)使用wget下载阿里yum源repo文件

wget http://mirrors.aliyun.com/repo/Centos-7.repo

3)清理旧包

yum clean all

4)把下载下来阿里云repo文件设置成为默认源

mv Centos-7.repo CentOS-Base.repo

5)生成阿里云yum源缓存并更新yum源

yum makecache
yum update
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐