一、介绍及准备
1、简介
yum提供软件仓库,且自动解决了依赖关系,相较于RPM(未解决依赖关系)或源码包安装(需要手动配置安装信息)来说,更加快捷方便(但生产一般不会开放,需要自己提前解决依赖问题),最底层实际还是基于RPM进行安装的
2、分类
本地yum源:基于光盘或镜像文件,仓库在本地,不依赖于网络
网络yum源:远端仓库,像国内知名的阿里源,网易源,清华源等,国外的centos源,redhat源,epel源等
3、备份并清除yum源配置
cd /etc/yum.repos.d
tar -czvf yum.repos.d.tar.gz *
rm -rf *.repo
yum repolist all
二、本地yum源
1、使用光盘作为yum源仓库
1)确保虚拟机中光盘已连接
2)挂载光盘到指定目录
cd /
rm -rf /mnt/*
mount -o ro /dev/sr0 /mnt
说明:-o表示挂载方式,ro表示readonly
3)设置开机自动挂载
chmod +x /etc/rc.local
/etc/rc.local
echo ‘mount -o ro /dev/sr0 /mnt’ >>/etc/rc.local
4)编写本地yum源文件
cd /etc/yum.repos.d/
vi local.repo
添加如下内容
#仓库名
[local]
name=local yum
#仓库路径,支持file://本地路径,ftp://,http://...
baseurl=file:///mnt
#gpg密钥,0为不检测,1为检测(配合gpgkey=密钥链接使用)
gpgcheck=0
#是否启用当前仓库,0为不启用,1为启用,默认无enable项则代表开启
enable=1
5)验证
先清除yum缓存,并重新建立
yum clean all
yum makecache
查看当前仓库信息
yum repolist all
安装httpd验证
扩展:查看配置文件说明man 5 yum.conf
三、网络yum源
1、使用知名平台yum源
阿里云镜像:https://developer.aliyun.com/mirror/
参照页面内的配置方法更新即可
注:非阿里云ESC用户配置会失败,此处只是提供修改方法,具体根据公司要求配置
清华镜像站:https://mirrors.tuna.tsinghua.edu.cn/
腾讯镜像站:https://mirrors.cloud.tencent.com/
2、安装扩展源(可选)
yum -y install epel-release
epel是对官方源的扩展,官方源没有的软件可能会在epel源中下载到
3、特定软件yum源配置
如nginx,mysql,zabbix等软件
以nginx为例,官网描述如下
四、自建yum仓库
1、缓存软件到本地
1)下载到默认目录
修改/etc/yum.conf文件
cachedir=/var/cache/yum/$basearch/$releasever
#将keepcache的值由0改为1,表示软件下载安装后,将软件包保存在cachedir中
keepcache=1
2)下载软件及依赖到指定目录
yum install --downloadonly --downloaddir=保存路径 软件名称
2、自建yum仓库
1)方式一
下载生成仓库的软件:yum install createrepo
将指定目录制作成仓库:createrepo 指定目录
cd /etc/yum.repos.d/
vi 自定义名.repo
添加如下内容
[自定义名]
name=yum package
baseurl=file:///指定目录
gpgcheck=0
enable=1
清理并重建
yum clean all
yum makecache
2)方式二
注:以/soft当作仓库目录为例
yum -y install yum-utils
yun -y install createrepo
reposync -np /soft
createrepo /soft
yum-config-manager --add file:///soft
echo gpgcheck=0 >>/etc/yum.repos.d/soft.repo
至此soft目录就可以作为本地yum仓库来使用
以下操作将对外提供yum服务(基于nfs)
仓库服务端操作
yum -y install nfs-utils
systemctl restart nfs
echo '/soft *(rw)'>> /etc/exports
systemctl restart nfs
查看共享目录showmount -e 127.0.0.1
客户端操作
mount -t nfs 192.168.237.100:/soft /mnt
yum-config-manager --add file:///mnt
echo gpgcheck=0 >>/etc/yum.repos.d/mnt.repo
yum repolist如果能看到mnt仓库则说明搭建成功
五、常见异常
1、"Could not resolve host: mirrorlist.centos.org; 未知的错误"
解决措施:网卡配置缺少DNS域名解析器
/etc/sysconfig/network-scripts/ifcfg-ensXX文件中增加DNS1=域名解析器IP
示例: