該方案適用於當服務器無法連接到鏡像站時對服務器的緊急修復
下面是操作方法(需要在root權限下操作)
1. 如果已經在光驅中插入光盤或者在虛擬機中掛載鏡像,則執行以下命令
# mount /dev/cdrom /media
如果鏡像文件位於服務器或者虛擬機硬盤上,則執行以下命令
# mount -o loop -t iso9660 CentOS-7-x86_64-Everything-1611.iso /media
2. 掛載完成后,進入/etc/yum.repos.d目錄,備份原有repo文件
# mkdir -p /etc/yum.repos.d/bak # cp *.repo ./bak
3. 修改CentOS-Media.repo,刪去原有內容並寫入如下內容(忽略注釋)
# vim ./CentOS-Media.repo
[CentOS 7.3 1611] #命名 name=CentOS-$releasever - Everything_ISO #該鏡像源已啟用,若為0,則禁用 enabled=1 #鏡像源地址 baseurl=file:///media/Packages/ #啟用GPG校驗,若為0,則禁用校驗 gpgcheck=1 #校驗文件(密鑰)文件地址 gpgkey=file:///media/RPM-GPG-KEY-CentOS-7
4. 修改CentOS-Base.repo,在每一組中添加一行如下內容
enabled=0
例如
[base] enabled=0 name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
5. 運行如下命令
清除yum的緩存、頭文件、已下載的軟件包等等
# yum clean all
重建yum緩存
# yum makecache
查看已啟用的鏡像源
# yum repolist all
該命令的輸出如下圖
至此將everything鏡像掛載為離線鏡像源就已經成功了,如果想還原的話,就把bak文件夾里的repo文件覆蓋到源目錄中,重建yum緩存即可