可供 CentOS 使用的軟件庫
CentOS 及其他第三方開發者提供了一些軟件庫,收錄了 base 及 updates 預設軟件庫以外的軟件套件。沒有一個清單是百份百完整,因為任何人都可發佈軟件庫,但我們在這裡下了一點功夫,為每個軟件庫的內容作一個簡介。這些軟件庫在 CentOS 社區內有不同程度的穩定性、支援、及合作。
1. 有關 enabled 及 disabled 的軟件庫設定檔
請參閱 man 5 yum.conf,尤其是有關 enabled=0 和 enabled=1 的對比。我們建議 /etc/yum.repos.d/ 內的每個 .conf 檔都應該包含上述選項。這樣做可讓系統的管理員更明確地指定搜尋套件時應否檢查某個軟件庫。每當編輯這些檔案後,為求清除所有暫存資訊和確保改動即時生效,請以 root 身份執行:
# yum clean all
2. CentOS 提供的附加軟件庫
CentOS Extras —— 在 CentOS 5 及 6,這些套件提供額外功能,但不損壞 CentOS 與上游的兼容性,也不會更新基本元件,然而上游並未測試這些軟件,它們亦不包含在上游產品內。在 CentOS 7 及 8 這是上游的軟件庫,也包含額外的 CentOS 套件。CentOS 的開發小組已經針對這個軟件庫內的每個程式作出測試,確定它們能在 CentOS 下運作。這個軟件庫已連同 CentOS 一併安裝,並預設為啟用的。
CentOSPlus —— 這些套件為了提供額外功能,會更改 CentOS 的某些基本元件。這個軟件庫會導致 CentOS 與上游供應者的內容有異。CentOS 的開發小組已經針對這個軟件庫內的每個程式作出測試,確定它們能在 CentOS 下運作。上游供應者並未測試這些軟件,它們亦不包含在上游產品內。這個軟件庫已連同 CentOS 一併安裝,但預設為停用的。由這個軟件庫提供的受歡迎套件包括:CentOS-Plus 內核(含有額外修正、驅動程式/功能的重建內核),支援 postgresql 資料庫的 postfix(官方版本只支援 mysql)。
CentOS-Fasttrack —— FastTrack 是上游的計劃,在正常定點發行週期外發行某些更新。上游已於 6.9 及 7.3 發行週期停用些渠道 上游文章。我們現在採用此軟件庫發行由社群修正的套件,它們會 取替 上游的版本。這是一個純選擇性的軟件庫,其內容由 CentOS QA 小組決定。我們現正計劃一個從 git 接收修正檔到此軟件庫的方案。我們將會在 freenode irc 的 #centos-devel 頻道及 CentOS-Devel 郵件列表上討論此軟件庫。
debuginfo —— 套件載有編譯主套件時所產生的偵錯符號。這個軟件庫的設定檔預設是不被提供的。oprofile、crash 及 systemtap 等工具需要 debuginfo 套件。請留意 debuginfo 套件也許會未被簽署,因此它們必須以 --nogpgcheck 來安裝,或在軟件庫定義內採用 gpgcheck=0。這些套件可以在 http://debuginfo.centos.org/ 找到。
CR —— 持繼發行(CR)軟件庫內藏有下個 CentOS 定點發行本的套件。此軟件庫只會由上游推出定點發行,直至 CentOS 推出官方發行期間才會有內容。它們應被視為測試性質,不建議用於生產用的伺服器。話雖如此,你或許應考慮這樣做,因為它經常收錄了建立自新定點發行版本卻未面世的安全性修正。這個軟件庫的內容是用來建設公開發行的 ISO 映像用的。它背後的理念是讓系統管理員能在現有的伺服器上採用新定點發行版本的內容,而無須額外等候一至兩個星期直至 ISO 映像面世。
kernel —— 替代架構很多時候不能採用 Red Hat 的內核(尤其是 armhfp)。這個軟件庫收錄了供這些架構用的內核(來自 kernel.org 的 LTS)並且是由 替代架構 SIG 所維護的。由於這些內核對非 armhfp 用戶亦有幫助,它們亦被建立給這些架構。預設在 armhfp 下被啟用,在其它架構下被停用。
experimental —— 與 kernel 軟件庫類同,但較新,就像是下個次要發行版本的內核的遊樂場,有時當沒有新版 LTS 時,這裡會空置直到新版本被發行。此軟件庫是由 替代架構 SIG 所維護的。預設被停用。
軟件選集 —— 軟件選集(SCL)軟件庫現在由 CentOS 特別興趣小組所維護,因此嚴格來說並非一個 CentOS 軟件庫。它收錄了某些程式的較新版本,這些版本可與舊版同時共存,並透過 scl 指令來執行。安裝的方法是利用 yum --enablerepo=extras install centos-release-scl。截至本文,此軟件庫包含 devtoolset 3、4 及 6(不知 devtoolset-5 去了哪裡),新版的 git,httpd24(2.4.18),新版的 mariadb,maven30 及 33,新版的 mongodb,數個 mysql 版本,數個 nginx 版本,nodejs010,數個 perl 版本,7.0 及以下版本的 php,postgresql92 及 95,數個 python 版本,eclipse46 和不同的 ruby 版本。坊間有軟件庫亦會提供類同的代用套件,你可以參考一個(相對)客觀的 評論,比較 SCL 與其它軟件庫的分別。
PowerTools —— 只供 CentOS8 使用,PowerTools 軟件庫提供了大量開發者用的工具。預設是停用的。
第三方軟件庫
|
警告: CentOS 並不提供或支援下列軟件庫。CentOS 計劃對這些網站亦沒有修訂權。為了支援他們的套件,很多都有專用的郵件列表、IRC 頻道、問題追踪庫、等等。 |
|
|
註:假如你正考慮使用第三方軟件庫,你應該認真地思考如何防止來自這些軟件庫的「更新」不經意地取替了 CentOS 的核心部份。其中一個方法就預設它們為停用的,有必要時才啟用它們。見:man yum |
|
|
另一個方法就是於 /etc/yum.repos.d/ 內的相關 .conf 檔案裡使用 exclude= 及 includepkgs= 選項在子收藏庫上。見:man yum.conf |
|
|
yum 的 Priorities 插件能防止第三方軟件庫取替 base 套件,或防止 base/updates 取代第三方套件。 |
0.1. 獲社群認可的軟件庫
這些軟件庫經常獲社群推薦,普遍維護得不錯,並且為 CentOS 提供為數不少的額外套件。它們同樣與 CentOS 沒有 關係,是獨立個體。上述有關更新及先後次序的警告仍然生效。
Extra Packages for Enterprise Linux (EPEL) ——(見 http://fedoraproject.org/wiki/EPEL )提供為 EL7 重建的 Fedora 套件。套件應該不會取替 base,雖然在過往的定點發行版本曾出現問題。你可以執行 yum --enablerepo=extras install epel-release 來安裝 EPEL。epel-release 套件已包含在預設獲啟用的 CentOS Extras 軟件庫內。支援可在 Freenode 的 #epel 頻道、郵件列表、及它的 問題追踪庫內找到。要是你願意在 EPEL 更新被推送至 stable 軟件庫前協助測試,你可以在你的開發/測試伺服器上 啟用 epel-testing 軟件庫。在作業中的伺服器上啟用 epel-testing 不是個好主意。
EPEL Playground —— (見 https://hackmd.io/@ssmoogen/B1p2QM-eS)為 EPEL-8 提供一組名為 playground 的額外頻道。它與 Fedora Rawhide 相似,用意是讓包裝者能處理那些版本更新較快的軟件,或者API 的改動大致無法放進一般頻道。用家該留意 EPEL8-playground 內的套件對服務等級沒有任何承諾。你只應按需要從中抽取套件,不過 EPEL-Playground 內不少套件最後都會被提昇為正式的 EPEL 套件。
The Community Enterprise Linux Repository (ELRepo) ——(見 http://elrepo.org/ )集中以 kmod 驅動程式來增強 EL6、EL7 及 EL8 的硬件支援(包括:顯示、檔案系統、硬件監控、網絡、音效、網絡攝像鏡及儲存器驅動程式)。也提供較新版的內核。請遵照 ELRepo 主頁來安裝 elrepo-release 套件並匯入它的 GPG 金鑰。詳情請參閱網站。支援途徑包括 Freenode 上的 #elrepo 頻道,ELRepo 用戶及 ELRepo 開發者的郵件列表,還有它的 問題追踪庫。
LinuxTECH.NET 軟件庫 ——(見 http://pkgrepo.linuxtech.net/el6/ )提供影音的套件,尤其是透過啟用套件中可選的功能來提供最廣泛的編解碼器支援。這個軟件庫只適用於 CentOS 6。啟用 backports 軟件庫有可能取替 base 套件。軟件庫設定檔已收錄於:http://pkgrepo.linuxtech.net/el6/release/linuxtech.repo 。截至 2018 年 5 月 2 日的檢查,主軟件庫內的套件在 2016 或 2017 年都未曾被更新,而 testing 軟件庫內只有兩個套件是 2015 後更新的,因此請謹慎地選用它們,因為你有可能會採用含有已知安全性漏洞的套件。切勿嘗試在 CentOS 7 上採用此軟件庫,這是行不通的。
nux-dextop ——(見 http://li.nux.ro/repos.html )為 EL6 及 7 提供以桌面及多媒體為導向的套件。它收錄了大量如 Ardour 等圖像化軟件,亦有 Cone 等文字軟件。依賴 EPEL 但不會覆蓋 base。nux-dextop 不提供 CentOS 8 用的軟件庫,而你不應嘗試在 CentOS 8 下採用 CentOS 7 的軟件庫。如果你需要 CentOS 8 的多媒體套件,請考慮 rpmfusion。現有的 nux-dextop 用戶可考慮遷移至 rpmfusion。
IUS Repo ——(見 https://ius.io/ —— http://lists.centos.org/pipermail/centos-docs/2009-November/003730.html )「提供『最新版的上游 PHP、Python、MySQL 』。它獲得 Rackspace 的內部工作所贊助(但沒有官方支援)。」請參閱它的客戶端使用指南來安裝 ius-release 套件並設置軟件庫。請參閱它的常見問題集,當中很坦率地探討利與弊。這裡 有一個相對中肯的評論對比 IUS 及 SCL。
agr-free ——(見 http://rpm.agresearch.co.nz/ )它只為 x86_64 架構上的 EL6 發行版本提供生物信息學的軟件。該軟件庫由紐西蘭的 AgResearch 所管理,內裡含有大量生物信息學軟件及依賴性套件供選擇,它們是 AgResearch 內的科學家所應用的軟件。該軟件庫預設是與 EPEL 軟件庫一起應用的。詳情請參閱它的 主頁。同樣的,這不適用於 CentOS 7。
GhettoForge ——(見 http://GhettoForge.org/ )為 EL7 及 6 提供其他第三方軟件庫所沒有的套件及較新版的套件。會蓋過 base 的套件都收藏於 [gf-plus] 軟件庫。請參閱 GhettoForge wiki 內的應用部份瞭解如何協調地運用 gf-plus 套件。請加入 freenode IRC 的 #ghettoforge 頻道尋求支援。
Psychotic Ninja ——(見 http://wiki.psychotic.ninja/index.php )它為 Red Hat 企業級 Linux 及其再發行版本如 CentOS Linux、Scientific Linux、Springdale、Oracle Linux 等提供套件。它的目標是為企業級 Linux 7 提供高質素,而現時未收錄於 EL 或其它第三方軟件庫的套件。
RPM Fusion Repository ——(見 http://rpmfusion.org/ )為 EL6 及 Fedora 提供「Fedora Project 或 Red Hat 所不願發行的軟件」。獲支援的架構包括 x86_64、aarch64 及 ppc64le。此軟件庫依賴 EPEL 提供某些套件。它的政策是不要取代 RHEL 或 EPEL 套件。RPM Fusion 用戶的郵件列表:https://lists.rpmfusion.org。請匯報錯誤到 https://bugzilla.rpmfusion.org
Harbottle ——(見 https://gitlab.com/harbottle/harbottle-main )這個 yum 軟件庫提供了一些未被標準軟件庫所收錄的 RPM 檔。這些套件適用於 CentOS 7 及 CentOS 8(還有 RHEL、Oracle Linux 等)。它還為額外 Perl 模組,額外 Python 模組,額外 Ruby Gems,Omnibus 套件及 Wine 32 位元套件提供獨立的軟件庫。
The SerNet Samba Repository ——(見 http://www.sernet.de/en/samba/ )一個德國網站,為 CentOS 7 及 6 提供 samba 的套件,及大量其他套件。某些用戶匯報能成功地使用這些套件,但建議小心使用。請留意只有 4.2 及以下版本的 samba 是免費的,較新版須要付年費才能存取。
Trinity Desktop Environment (TDE) ——(見 http://www.TrinityDesktop.org/about.php )為 EL5、6 及 7 提供套件來支援以 KDE 3.5 方式操作的桌面。備有 EL5、6 及 7 的 yum 軟件庫。他們亦有專屬的支援資源可查詢有關 Trinity 的問題。
Remi Repository ——(見 http://rpms.remirepo.net/ )Remi Collet 維護大量套件,包括最新版的 PHP 等。他在 http://blog.remirepo.net/pages/English-FAQ 收錄了一個常見問題集。請留意這是一系列的軟件庫,而採用 -safe 系列可確保 CentOS Linux 發行版本的基本套件不會被覆蓋或取代。然而,請留意此軟件庫與其它第三方軟件庫無法和平共存 —— 舉例說,Remi 的套件內含有 Obsoletes: 句式,並會自動以 .remi 版本取替來自 IUS 及 Webtatic 軟件庫的套件。這有可能是不理想的做法,因此採用此軟件庫時要小心。
ZFS On Linux ——(見 http://www.zfsonlinux.org/)ZFS on Linux 計劃把 OpenZFS 應用在 Linux 環境下。縱使高度精密及極受歡迎,此檔案系統並未受 RedHat/CentOS 測試,也不獲支援,因此一如使用其它第三方軟件庫,後果自付。
Linux Forensics Tools Repository - LiFTeR —— (See https://forensics.cert.org/)CERT Linux Forensics Tools 軟件庫為網絡鑑證取證及分析人仕提供很多有用的套件。它亦收藏了不少過往由 RPMForge 及 RepoForge 軟件庫提供的有用套件。
0.2. 已知的問題軟件庫
下列軟件庫會在只提供少量甚至沒有警告的情況下大規模地取替 base 套件,導致已知的問題出現。請極度謹慎地選擇應否採用這些軟件庫,並考慮改用上述軟件庫替代。
Atomic Repo ——(見 https://www.atomicorp.com/channels/ )Atomicorp 擁有商業產品及免費軟件庫,內中有較新的 PHP、MySQL 和大量其他套件。在其它地方未必可以找到的套件包括 hunspell、snort 及 zabbix。他們亦提供 Plesk。<(>
|
請額外留意 Atomic 的軟件庫在安裝後會把軟件庫預設為啟用的,並會在更新 release 套件時覆寫用戶的改動而不設通知。安裝時,Atomic 將會取替很多核心套件。很多 CentOS 用戶在啟用此軟件庫後都遇上問題,這事實在搜尋論壇可見一班。單單移除來自此軟件庫的套件亦有可能令系統不穩定。我們已經警告你。 |
City-Fan —— 為不同版本的 CentOS/RHEL 提供軟件庫,但似乎全部傾向未有警告便蓋過來自 base/updates 的套件。當中計有 libcurl 等系統程式庫,一經安裝後便會導致 yum 失效!切勿選用。
|
請 額外留意 City-Fan 軟件庫,因為它們安裝後會預設為啟用的。City-Fan 在安裝後 將會 取替大量 core 套件,而這些套件的結構與 CentOS 不同,令你近乎無法乾淨利落地移除它們。就算 移除 源自此軟件庫的套件後仍有機會令系統不穩定。我們已經警告你。 |
Jason Litka - Utter Ramblings Repository —— 似乎已不再被維護。
RPMForge/RepoForge —— 這計劃已終止。不被維護。不要使用。
Webtatic Repo —— 提供較新版的 PHP、MySQL 及其它套件。IUS 或 SCL 是較佳的選擇。
反面教材
|
警告: 請勿做以下的事情。 |
有某人在 IRC 頻道內求問設置第三方 yum 軟件庫的指引。隨便遵從外部文檔的指引是個壞主意。下面列舉了一些不正確的軟件庫設置:
- 把版本及架構硬編碼:'baseurl=http: //ftp.belnet.be/packages/dries.ulyssis.org/redhat/el4/en/i386/dries/RPMS'。這樣 $releasever 及 $basearch 皆是硬編碼。對比較正規的:'baseurl=http: //apt.sw.be/redhat/el$retwleasever/en/$basearch/dag'。硬編碼局限此方法於 i386 平台上的 CentOS 4。
- 混合使用 Fedora 及 CentOS 的軟件庫:留意 'name=Fedora' 而不是 'name=CentOS.(某版本)'。Fedora 的軟件庫很大機會無法與 CentOS 兼容。其它出自同一上游源代碼的企業級 Linux 的軟件庫或許會兼容性較高,但使用時仍需小心。
- 運作與你的 CentOS 版本不吻合的軟件庫!安裝軟件庫前,請確保它是合適的版本,否則不正常的現像可能會出現。
切勿模仿這些例子。在你更改(並有可能損毀)系統內的 yum 設定前,請先對別人的建議作出批判性的鑑定及思考。
Translation of revision 250