RHEL/CentOS系統(tǒng)的社區(qū)維護(hù)資源整合
Linux各個(gè)發(fā)行版的技術(shù)上雖然有差別,但一般不至于有很大鴻溝,實(shí)際上更復(fù)雜的其實(shí)是各個(gè)發(fā)行版的維護(hù)社區(qū)的工作方式和交流文化的差別,如果不了解去利用相應(yīng)的社區(qū)資源,就會(huì)覺得維護(hù)這個(gè)發(fā)行版異常吃力,從而產(chǎn)生“XXX發(fā)行版不好用”的錯(cuò)覺。
因?yàn)楣ぷ髟蜃罱医佑|維護(hù)的系統(tǒng)多為CentOS,之前對(duì)CentOS的印象都是“又古老又難維護(hù)”,不過幾個(gè)月的積累下來,發(fā)現(xiàn)RH系的社區(qū)資源并不比Debian/Ubuntu的少,只不過是國內(nèi)的維護(hù)文化和他們的相去甚遠(yuǎn),幾乎無法兼容,以致很多人都缺乏了解,所以覺得需要撰文列舉下這些資源。
以下很多第三方倉庫都在Centos Wiki有介紹。
倉庫列表
維護(hù)倉庫的通常是一群維護(hù)者,有個(gè)論壇、郵件列表等,有什么需求,或者有什么BUG,可以直接去和維護(hù)者溝通。下面都是列出了主頁的一些倉庫,留意主頁的鏈接可以找到交流方法了。
官方倉庫
默認(rèn)安裝的CentOS的yum,/etc/yum.repos.d/CentOS-Base.repo是基本的源倉庫;里面各個(gè)倉庫名下mirrorlist是官方列表,yum的fastestmirror插件會(huì)從其中選擇一個(gè)來更新;而如果注釋了mirrorlist寫baseurl,就只從這一個(gè)倉庫更新了。可以參考163源的CentOS5-Base-163.repo。
這些是CentOS/RedHat官方維護(hù)的,就是那些“老舊過時(shí)”而且“幾乎什么都沒”,只要不是出現(xiàn)嚴(yán)重漏洞都不會(huì)更新那些。
FedoraProject for EPEL
Fedora和Redhat的關(guān)系就不詳述了,就是FedoraProject里有個(gè)“EPEL Special Interest Group”,為EPEL系維護(hù)的一個(gè)社區(qū)倉庫,基本上加上這個(gè)倉庫后就能豐富了整個(gè)EPEL生態(tài)了,在Debian系里面“理所當(dāng)然源里就有”的那些軟件就會(huì)有了,比如openvpn,htop,ipcalc,git ... 雖然版本不會(huì)很新,但起碼能用了。
用法:安裝這些鏈接頁面里面的.rpm。
RPM Fusion
這個(gè)倉庫說提供的是FedoraProject跟RedHat都不想提供的程序,提供的分類就知道怎么回事了,基本都是Sound and Video,Games and Entertainment,Hardware Support等等。首先是Linux平臺(tái)下多媒體支持方面的版權(quán)問題非常復(fù)雜,ffmpeg/x264等通常都有一些爭(zhēng)議行的授權(quán),當(dāng)然也有nvidia/ati等硬件的閉源驅(qū)動(dòng)、Oracle的閉源版Virtualbox等,把他們獨(dú)立出來避免爭(zhēng)端。
另外這個(gè)倉庫基本提供的更新都是for Fedora,EPEL5/6的幾乎沒更新。可以說RPMFusion是個(gè)“桌面?zhèn)}庫”,而且國內(nèi)163源提供了RPMFusion的鏡像
用法: 見Configuration
RepoForge
原叫RPMForge,和CentOS社區(qū)較緊密,提供的包也比較海量的,很難評(píng)價(jià)分什么方向,CentOS Wiki專門有頁面提供安裝指導(dǎo),因?yàn)榘臄?shù)量太海量了很難和“FedoraProject for EPEL”做比較。
用法: 見Usage
Remi
這個(gè)倉庫依賴EPEL。
提供了php54 / mysql55 / firefox 等等的更新,選的軟件比較符合Web開發(fā)者工作的需要,當(dāng)然服務(wù)器最好也是維護(hù)相同版本。這個(gè)倉庫使用了github來管理軟件包的spec,可以直接看他提供了什么包。更新非常緊貼各個(gè)軟件的官方發(fā)布。
用法: 安裝主頁相應(yīng)的remi-release-XX.rpm
KBS-Extras
CentOS本來的維護(hù)團(tuán)隊(duì),有趣的一點(diǎn)是這倉庫基本全在-testing里面提供軟件包。
FedoraHosted - SoftwareCollections
這是重點(diǎn)推薦的。這不是一個(gè)倉庫,是很多個(gè)。里面的軟件包和上述那些倉庫不大一樣,都是在/opt下建立一套專用的目錄,避免在/usr里面打架的軟件包;這里提供了php/python/ruby/perl/mysql/postgre/apache等常用“服務(wù)器生態(tài)”。
用法:各個(gè)Collection的repo鏈接。
FedoraHosted
上述的只是FedoraHosted內(nèi)一個(gè)子倉庫,F(xiàn)edoraHosted是類似Ubuntu的PPA社區(qū)的環(huán)境,維護(hù)者可以通過建立自己的帳號(hào)然后建立一些自選軟件的倉庫。里面應(yīng)該還有很多有用的東西待發(fā)掘。
Fedora People Repositories
一樣是類似Ubuntu的PPA,不過這里就多數(shù)偏向Fedora的更新,也有些有EPEL6。
Pramberger, pp
這個(gè)倉庫主要提供EPEL 3/4/5等舊版本的一些包的更新,有php,python的第三方模塊、qt、squid等的更新,大概還是偏向更新服務(wù)器環(huán)境的吧。
用法:保存http://devel.pramberger.at/getrepo?release=<version>到/etc/yum.repos.d,注意替換release參數(shù)(3|4|5)。
ELRepo
偏內(nèi)核的新硬件支持模塊。
IUS Community Repo
提供PHP, Python, MySQL更新,不過感覺更新不夠Remi緊密。
PS維護(hù)技巧
yum的倉庫選擇
/etc/yum.repos.d/下的文件記錄著各個(gè)倉庫的信息,上述很多倉庫在安裝之后會(huì)在這里生成一個(gè).repo,但里面的倉庫不一定被啟用了,里面可能寫了enabled=0。
一般來說,為了避免系統(tǒng)升級(jí)時(shí)候和第三方的包出現(xiàn)沖突,第三方的倉庫都應(yīng)該enabled=0,在需要使用、查找其中軟件時(shí)候,使用yum的參數(shù):
yum --enablerepo=remi install firefox-langpack-fr
下載SRPM
一定需要定制編譯特定軟件時(shí)候,這些倉庫都提供SRPM倉庫的,但是默認(rèn)可能沒開啟。(yumdownloader需要安裝yum-utils)
yumdownloader --enablerepo=epel-source --source php
Yum/Rpm常用命令
- http://yum.baseurl.org/wiki/YumCommands
- http://yum.baseurl.org/wiki/RpmCommands
- http://yum.baseurl.org/wiki/RepoQuery
- http://yum.baseurl.org/wiki/Guides
Rpm/dpkg、yum/apt-get對(duì)照