如果機構內的電腦數量多的話, 建立本地的 YUM Repository 後, 便不用每個套件在不同電腦都下載一次, 可以節省不少頻寬, 以下是在 CentOS 建立本地 YUM Repository 的方法。
先建立以下目錄, 以下例子是 CentOS 7 的 x86_64, 需要根據需要修改:
# mkdir -pv /var/www/html/centos/7/updates/x86_64
# mkdir -pv /var/www/html/centos/7/os/x86_64
# mkdir -pv /var/www/html/centos/7/os/x86_64/CentOS/RPMS/
# mkdir -pv /var/www/html/centos/7/os/x86_64
# mkdir -pv /var/www/html/centos/7/os/x86_64/CentOS/RPMS/
然後將 CentOS DVD 內的 RPM 複製到 Base Repository 目錄 /var/www/html/centos/base.
建立 repository headers:
# createrepo /var/www/html/centos/7/os/x86_64
接著用 rsync 將 CentOS 的更新檔複製到本地端, CentOS 的完整可以在以下 CentOS 官方網站找到:
例如用 rsync://linux.cs.nctu.edu.tw/CentOS/ 更新:
/usr/bin/rsync -avrt rsync://linux.cs.nctu.edu.tw/CentOS/7/updates/x86_64 –exclude=debug/ /var/www/html/centos/7/updates/
以上指令會將完整地將 update repository 複製到 /var/www/html/centos/7/updates/x86_64.
為了日後方便維護, 可以將以上指令放到 crontab 排程自動執行, 那便可以有更新時自動下載新套件。
下載了更新套件到本地目錄後, 便要設定 YUM 設定, 開啟檔案 /etc/yum.repos.d/CentOS-Base.repo, 將以上主機的 Yum Repository 加入便可以了, 例如主機位置是 192.168.1.10, 加入以下內容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[base] name=CentOS-$releasever - Base baseurl=http://192.168.1.10/centos/$releasever/os/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [update] name=CentOS-$releasever - Updates baseurl=http://192.168.1.10/centos/$releasever/updates/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 |
之後就可以透過本地 YUM Repository 更新了。
我在執行rsync時出現錯誤:
rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(764) [Receiver=3.0.9]
上網查詢是rsyncd.conf要設定,但我加了還是不能同步
請問你有加了什麼設定嗎?