yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器,是一个专门为了解决包的依赖关系而存在的软件包管理器,可自动安装软件包(自动解决包之间依赖关系)的安装方式,能大大降低rpm包程序的安装难度。就好像 Windows 系统上可以通过 360 软件管家实现软件的一键安装、升级和卸载,Linux 系统也提供有这样的工具,就是 yum。
基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,当管理员使用 yum 安装 RPM 包时,yum 会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的 RPM 包并进行安装。
yum 软件可以用 rpm 命令安装,安装之前可以通过如下命令查看 yum 是否已安装:
[root@CncLucZK ~]# rpm -qa|grep yum
yum-4.0.9.2-5.el8.noarch
#可以看到,系统上已经安装了 yum。
使用 rpm 命令安装 yum 的具体方式,用上面的命令查看yum 是否已安装如果没有安装,则输出为空。这里输出为空。
将centos7 linux系统安装光盘插入光驱,运行以下命令,将光盘挂载到/mnt分区上。
mount /dev/sr0 /mnt
利用CD命令,将当前路径切换为光盘中的rpm包所在目录Packages。利用grep查找yum安装包,获取yum安装包的文件名。
Linux 系统安装映像文件中就含有常用的 RPM 包,我们可以使用压缩文件打开映像文件(iso文件),进入其 Packages 子目录.
ll|grep yum*centos*
cp yum-3.4.3-167.el7.centos.noarch.rpm /tmp/
运行rpm -ivh /tmp/yum-3.4.3-167.el7.centos.noarch.rpm 命令,开始安装yum程序。rpm命令是rpm包管理器,-i参数表示进行安装,-v参数表示显示安装详细过程,-h参数表示显示安装进程,直到出现两个 100% 才是真正的安装成功,第一个 100% 仅表示完成了安装准备工作。
直接在shell窗口中运行yum命令,可以看到yum命令能够正常运行,因为没有携带参数,所以运行后列出了yum命令的帮助信息。
[root@CncLucZK ~]# yum
usage: dnf [options] COMMAND
List of Main Commands:
alias List or create command aliases
autoremove remove all unneeded packages that were originally installed as dependencies
check check for problems in the packagedb
check-update check for available package upgrades
clean remove cached data
deplist List package's dependencies and what packages provide them
distro-sync synchronize installed packages to the latest available versions
downgrade Downgrade a package
也可以运行:rpm -qa|grep yum命令来检验yum是否正常安装
使用 yum 安装软件包之前,需指定好 yum 下载 RPM 包的位置,此位置称为 yum 源。换句话说,yum 源指的就是软件安装包的来源。使用 yum 安装软件时至少需要一个 yum 源。yum 源既可以使用网络 yum 源,也可以将本地光盘作为 yum 源。接下来就给大家介绍这两种 yum 源的搭建方式。
[root@CncLucZK ~]# ll /etc/yum.repos.d/
total 24
-r--r--r-- 1 root root 977 Dec 11 2020 CentOS-Base.repo
-r--r--r-- 1 root root 230 Dec 11 2020 CentOS-Epel.repo
-rw-r--r-- 1 root root 1395 Mar 15 2022 epel-modular.repo
-rw-r--r-- 1 root root 1332 Mar 15 2022 epel.repo
-rw-r--r-- 1 root root 1494 Mar 15 2022 epel-testing-modular.repo
-rw-r--r-- 1 root root 1431 Mar 15 2022 epel-testing.repo
[root@CncLucZK etc]# cat yum.repos.d/CentOS-Base.repo
[BaseOS]
name=Qcloud centos - BaseOS
baseurl=http://mirrors.tencentyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
[extras]
name=Qcloud centos - extras
baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
[centosplus]
name=Qcloud centos - centosplus
baseurl=http://mirrors.tencentyun.com/centos/$releasever/centosplus/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
[AppStream]
name=Qcloud centos - AppStream
baseurl=http://mirrors.tencentyun.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
[PowerTools]
name=Qcloud centos - PowerTools
baseurl=http://mirrors.tencentyun.com/centos/$releasever/PowerTools/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
此文件中含有 5 个 yum 源容器,其他容器和 base 容器类似。base 容器中各参数的含义分别为:
网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。以下是网络yum源的安装步骤:
1.首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo CentOS-Base.repo
3.运行以下命令生成缓存
yum clean all
yum makecache
除了网易之外,国内还有其他不错的 yum 源,比如中科大和搜狐。
中科大的 yum 源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos
sohu 的 yum 源安装方法查看: http://mirrors.sohu.com/help/centos.html
[root@CncLucZK ~]# mkdir /mnt/cdrom
#创建cdrom目录,作为光盘的挂载点
[root@CncLucZK ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device/dev/srO is write-protected, mounting read-only
#挂载光盘到/mnt/cdrom目录下
[root@CncLucZK ~]# mount | tail -1
/dev/sr0 on /media type iso9660 (ro)
2.修改其他几个 yum 源配置文件的扩展名,让它们失效,因为只有扩展名是"*.repo"的文件才能作为 yum 源配置文件。当也可以删除其他几个 yum 源配置文件,但是如果删除了,当又想用网络作为 yum 源时,就没有了参考文件,所以最好还是修改扩展名。 命令如下:
[root@CncLucZK ~]# cd /etc/yum.repos.d/
[root@CncLucZK yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@CncLucZK yum.repos.d]#mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
[root@CncLucZK yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.bak
3.修改光盘 yum 源配置文件 CentOS-Media.repo,参照以下方修改:如此,本地 yum 源就配置完成了
[root@CncLucZK yum.repos.d]# vim CentOS-Media.repo
[c6-media] #中括号里内容要求唯一,但不要出现特殊字符
name=CentOS-$releasever - Media #此为描述信息,可以看情况填写
baseurl=file:///mnt/cdrom
#地址为你自己的光盘挂载地址
#file:///media/cdrom/
#file:///media/cdrecorder/
#注释这两个的不存在地址
gpgcheck=1 #此项为是否检查签名,1为检测, 0为不检测
enabled=1
#把enabled=0改为enabled=1, 让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8 //签名认证信息的路径
[root@CncLucZK yum.repos.d]# yum repolist
参考文献:
yum是什么,yum源配置
Linux yum 命令