轉(zhuǎn)自:
http://www.cnblogs.com/holbrook/archive/2012/08/17/2644147.html yum(Yellow dog Updater, Modified) 是一個與apt類似的軟件包管理器,在Fedora,Redhat,SUSE,CentOS等Linux發(fā)行版中采用。 軟件包管理器可以解決rpm的依賴管理問題,使得軟件的安裝、升級更加容易。 yum使用中心倉庫(repository)最為軟件源,管理軟件包,而各Linux系統(tǒng)通過yum的配置連接到這個源來獲取軟件包。 1 理由盡管有很多的免費鏡像提供yum源服務(wù),但是還是有必要建立自己的yum服務(wù)器,主要出于以下幾點考慮:
2 規(guī)劃本公司服務(wù)器操作系統(tǒng)主要是RHEL和CentOS,所以希望同時提供這些操作系統(tǒng)的yum源。 由于沒有購買RHEL服務(wù),所以RHEL源使用DVD中的文件構(gòu)建一個“靜態(tài)”的源。 而CentOS則可以與一個發(fā)布的源進行同步,以保持更新。官方認(rèn)可的鏡像服務(wù)可以在 http://www./modules/tinycontent/index.php?id=32 查找速度較快并且支持rsync的鏡像,但是我找到了一個國內(nèi)的鏡像不在該列表中: mirrors.ustc.edu.cn/centos/. 這個鏡像支持rsync 服務(wù),可以進行同步更新。 yum源的規(guī)劃如下: http://dev./mirrors/ centos/ centos源,其目錄結(jié)構(gòu)與其他鏡像站點相同 rhel/ RHEL源 6Server/ 5erver/ os/ x8664/ # 將RHEL dvd的iso光盤文件掛載到此目錄 updates/ x8664/ # 使用mirrordir從ftp://ftp.redhat.com/redhat/linux/updates/rhn/5Server/x86_64/ 同步 custom/ x8664/ # 自己開發(fā)的內(nèi)部使用的軟件包 Packages/ # 打包的rpm文件 repodata/ # 用createrepo生成的索引文件 RPM-GPG-KEY-redhat-5Server RPM-GPG-KEY-redhat-6Server CentOS-mycompany.repo RHEL-mycompany.repo 3 架設(shè)yum源可以使用http或ftp提供服務(wù),這里使用nginx作為webserver,提供http方式的訪問。 1.在/path/to/your/mirrors 創(chuàng)建好上面規(guī)劃的目錄結(jié)構(gòu)。
4 使用為了便于使用,可以提供寫好的repo文件,用戶只需放到/etc/yum.repos.d/目錄下,再執(zhí)行yum update 即可。這里創(chuàng)建了CentOS-mycompany.repo 和 RHEL-mycompany.repo 放到/path/to/your/mirrors目錄下,分別用于CentOS和RHEL。 在repo文件中可以盡量使用變量,以提高通用性。常用的變量包括: $releasever,發(fā)行版的版本 $arch,cpu體系(劃分過于細致,在repo文件中一般不使用,而是使用下面的$basearch) $basearch,cpu的基本體系組 我的兩個repo文件參考如下: RHEL-mycompany.repo: [base] name=RHEL-mycompany - Base baseurl=http://dev./mirrors/RHEL/$releasever/os/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-redhat-$releasever [updates] name=RHEL-mycompany - Update baseurl=http://dev./mirrors/RHEL/$releasever/updates/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-redhat-$releasever [extras] name=RHEL-mycompany - Extra baseurl=http://dev./mirrors/RHEL/$releasever/extras/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-redhat-$releasever [custom] name=RHEL-mycompany - Custom baseurl=http://dev./mirrors/RHEL/$releasever/custom/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-redhat-$releasever CentOS-mycompany.repo: [base] name=CentOS-mycompany - Base baseurl=http://dev./mirrors/centos/$releasever/os/$basearch/ gpgchecksever=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever #released updates [update] name=CentOS-mycompany - Updates baseurl=http://dev./mirrors/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever #additional packages that may be useful [extras] name=CentOS-mycompany - Extras baseurl=http://dev./mirrors/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever #additional packages that extend functionality of existing packages [centosplus] name=CentOS-mycompany - Plus baseurl=http://dev./mirrors/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever #contrib - packages by Centos Users [contrib] name=CentOS-mycompany - Contrib baseurl=http://dev./mirrors/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever #packages of mycompany [custom] name=CentOS-mycompany - custom baseurl=http://dev./mirrors/centos/$releasever/custom/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever
Date: 2012-08-17 15:17:22 CST HTML generated by org-mode 6.33x in emacs 23 |
|