本文中的“本地YUM源”包括三種類型:一是直接使用CentOS光碟片作為本地yum源,優點是簡單便捷,缺點是光碟片軟體包可能不完整(centos 7 Everything 總共才6.57G);二是同步CentOS官方源到本地(相當於建立了一個公用鏡像),優點是最靠譜,缺點是占空間費流量;三是建立完全自訂的本地源,優點是靈活性最大,缺點是只是作為其他源的補充。
一、使用CentOS光碟片作為本地yum源
(1) 實體機上直接放入光碟片
(2) VMware Workstation 虛擬機器:虛擬機器-->可行動裝置-->CD/DVD-->串連
代碼如下 |
複製代碼 |
mkdir /mnt/cdrom #建立目錄 mount /dev/cdrom /mnt/cdrom #掛載 umount /mnt/cdrom #卸載 |
若不想每次都要放光碟片,那就複製光碟片檔案到本地硬碟吧
cp -avf /mnt/cdrom /yum # -a:該選項保留連結、檔案屬性,並遞迴地複製目錄
2、建立repo檔案
代碼如下 |
複製代碼 |
cat >>/etc/yum.repos.d/CentOS-Local.repo<<-EOF [Local] name=Local Yum baseurl=file:///yum/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1 |
問:為什麼連createrepo軟體都不用安裝?
createrepo 的作用是建立索引檔案的(位於repodata檔案夾),光碟片中連GPG-KEY都有了。
二、如何為CentOS建立公用鏡像
詳細說明見官方中文文檔:
http://wiki.centos.org/zh/HowTos/CreatePublicMirrors
提供一個SHELL指令碼,然後cron自動運行~~
指令碼稍作修改,換成中科大的鏡像源。可用鏡像列表見:
http://www.centos.org/download/mirrors/
代碼如下 |
複製代碼 |
localpath="/mirrors/CentOS" mirror="mirrors.hustunique.com::centos" rsync="rsync -avzH --delete" verlist="7" baselist="centosplus extras fasttrack os updates" archlist="x86_64" for ver in $verlist do for base in $baselist do for arch in $archlist do remote=$mirror/$ver/$base/$arch/ mkdir -pv $localpath/$ver/$base/$arch/ $rsync $remote $localpath/$ver/$base/$arch/ done done done |
三、建立完全自訂的本地源
把平時收藏的一些RPM軟體包放在一個目錄裡,就變成一個自訂來源了,可以用YUM來管理,靈活性相當大。
官方教程:How to setup your own package repository
1、建立本地yum倉庫
代碼如下 |
複製代碼 |
mkdir -p /yum/local #可以有N級目錄 cp ... #複製RPM包到上述目錄 |
2、建立repo檔案
代碼如下 |
複製代碼 |
cat >>/etc/yum.repos.d/CentOS-Local.repo<<-EOF [Local] name=Local Yum baseurl=file:///yum/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1 |
3、安裝createrepo
代碼如下 |
複製代碼 |
yum install createrepo #使用yum安裝createrepo rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/createrepo-0.9.9-23.el7.noarch.rpm |
4、建立索引
代碼如下 |
複製代碼 |
createrepo /yum yum makecache #更新緩衝 |