未分類

架設 Yum Repository 套件更新主機 for Fedora 8

如果一間機房裡面有多台伺服器,作業系統同樣都是Fedora 8版本,那我們在更新套件的時候我可以在自己的區域網路內架設一個 YUM 更新套件的Server,提供內部伺服器使用,以節省對外的頻寬浪費。

// 先架好 apache
# yum -y install httpd

// 開機自動啟動 apache
# chkconfig httpd on

// 啟動 apache
# service httpd start

// 安裝製作 repo 的套件
# yum -y install createrepo

我想規劃這台SERVER的packegs路徑為
fedora 8 版本,base 套件 http://192.168.1.101/yum/base/8/i386/
update 套件 http://192.168.1.101/yum/updates/8/i386/

如果你想弄其他版本也可以,Fedora 7 的話,以此類推路徑就可以規劃如下
http://192.168.1.101/yum/base/7/i386/
http://192.168.1.101/yum/updates/7/i386/

// 先建立對應的目錄
# mkdir -p /var/www/html/yum/base/8/i386
# mkdir -p /var/www/html/yum/updates/8/i386

base 的目錄是光碟發行時最原始的面貌,一段時間之後有更新的套件會放在 updates 目錄中,所以我們先把Fedora 8光碟裡面的所有套件先灌到 base 中
// 掛載光碟
# mount /dev/cdrom /media/

// 把光碟中 Packages 目錄下所有檔案 COPY 到 /var/www/html/yum/base/8/i386
# cd Packages/
# cp -v * /var/www/html/yum/base/8/i386
# cd
# umount /media

接著我們執行一個很重要的步驟 createrepo
# createrepo /var/www/html/yum/base/8/i386

在做好 createrepo 之後,會產生一個目錄 repodata/,裡面建立一些相關 repo 的清單資訊等等…
# ls -l /var/www/html/yum/base/8/i386/repodata/
-rw-r–r– 1 root root 2227859 2008-01-05 19:26 filelists.xml.gz
-rw-r–r– 1 root root 6482840 2008-01-05 19:26 other.xml.gz
-rw-r–r– 1 root root  750400 2008-01-05 19:26 primary.xml.gz
-rw-r–r– 1 root root     951 2008-01-05 19:28 repomd.xml

接下來我們要去抓 update 更新套件的 packegs,因為要做遠端同步,所以先安裝 mirrordir 套件
# wget http://dag.wieers.com/rpm/packages/mirrordir/mirrordir-0.10.49-1.0.rh7.rf.i386.rpm
# rpm -ivh mirrordir-0.10.49-1.0.rh7.rf.i386.rpm

接著我們到義守的檔案伺服器把 updates 目錄裡的資料同步到我們電腦裡的 /var/www/html/yum/updates/8/i386/,但是 debug/目錄去除不需要同步

# mirrordir -v ftp://ftp.isu.edu.tw/pub/Linux/Fedora/linux/updates/8/i386/  \
–exclude \ ftp://ftp.isu.edu.tw/pub/Linux/Fedora/linux/updates/8/i386/debug/ \
/var/www/html/yum/updates/8/i386/

雖然 updates 目錄已經有 repodata/了,但保險起見,再做一下 createrepo
# createrepo /var/www/html/yum/updates/8/i386

伺服器要設定讓它自動去更新 updates 目錄,寫成排程,以下每2天在3:10分自動更新
# crontab -e
10 3 */2 * *

mirrordir -v ftp://ftp.isu.edu.tw/pub/Linux/Fedora/linux/updates/8/i386/ 
–exclude  ftp://ftp.isu.edu.tw/pub/Linux/Fedora/linux/updates/8/i386/debug/
/var/www/html/yum/updates/8/i386/

那在 Client 端如何設定呢?
# vi /etc/yum.conf
加入

[base-local]
name=Fedora $releasever – $basearch
failovermethod=priority
baseurl=http://192.168.1.101/yum/base/$releasever/$basearch
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=0

[updates-local]
name=Fedora $releasever – $basearch – Updates
failovermethod=priority
baseurl=http://192.168.1.101/yum/updates/$releasever/$basearch/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=0

 

// Client 端更新
# yum -y update

另外如果從遠端 updates 進來的主機太慢或 update 資料太舊的話,這裡 http://mirrors.fedoraproject.org//mirrorlists/publiclist/Fedora/8/ 

有很多主機可以選

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *