CentOS 何時才不算是 CentOS
Contents
1. 你說我的 CentOS 不是正版 CentOS 是何解?
我被轉介到這頁,因為其他人說我的 CentOS 版本不是 正版CentOS。你可以解釋一下嗎?
我們發現有很多人在提供他們所謂 CentOS 的東西。然而這東西事實上只是基於 CentOS,卻是被供應者修改過的。這個情況在多數提供 Linux VPS(虛擬個人伺服器)的情況下都屬實。這個改動多數是透過 CPanel 或 Plesk 等網站寄存軟件,或是透過 Virtuozzo 或 OpenVZ 等虛擬化軟件。
這些軟件計劃都以 CentOS 作為它們的基礎,但添加或修改某些核心元件。就以 OpenVZ 為例,它須要一個不是由 CentOS 提供的內核,而 CPanel 就提供自己版本的 Apache 及 PHP。
我們並不懂讀心術,所以無法知道下游供應商會如何修改一個基本的 CentOS 安裝。不過我們卻知道,一位初入門的管理員,例如:一位不熟識或不願應用指令行、不願閱讀文檔(man 及 info 頁面)、或不肯應用 CentOS 所提供的管理工具的人,可以很輕易地損毀一個正常運作的安裝。
煩請:先參詳你的供應商的支援渠道。
2. 我如何判斷我所擁有的 CentOS 是正版抑或改版?
你可以從點方面檢查你是否擁有正版 CentOS。請核對下列各點來確定你的 CentOS 是正版的:
2.1. 內核
CentOS 的內核永遠使用一致的方法來命名。請使用 uname -r 這個指令來檢查你在使用哪個內核。
在一台 CentOS 5 機器上,指令的輸出樣該看似 2.6.18-194.3.1.el5。內核的版本會經常採用 kernelversion-kernelrelease.centosrelease 這個結構。以 CentOS 5 為例,kernelversion 必定是 2.6.18 而且不會變,而 kernelrelease 多數會是一個數目(過往例子包括 53、92、128 及 164)或是三個以點號分隔的數目(過往例子包括 92.1.13、128.1.1 等)。centosrelease 在 CentOS 5 上必定是 el5。
如果你的內核版本看似 2.6.18-92.1.13.el5.028stab059.6,那麼你擁有一個自製的內核,它們多數來自虛擬化計劃。它不是標準的 CentOS 內核,因此你所使用的並非正版 CentOS。
2.2. 每間斷地存取 CentOS 計劃發行的更新
一個正版的 CentOS 系統可以在任何時候利用 CentOS 的鏡像發佈系統免費進行更新。這個步驟一般是透過以 root 的身份執行 yum 指令來完成。我們特別提及這個要求是因為安全性修正是不會同期發行的,因此 CentOS 計劃亦會隨著這個套件被建立起來及通過測試而將這些更新發行在鏡像上。詳情請參閱這裡的討論。
2.3. Yum 設定檔
CentOS 的另一個核心部份就是 yum 指令的設定。在一台正版的 CentOS 系統上,yum 設定會指向 CentOS 鏡像。要檢查這點,執行 rpm -qV yum 及 rpm -qV centos-release 這兩個指令。rpm -qV 這個指令會檢查一個 RPM 套件的內容,並顯示任何涉及該套件內的檔案的改動。
在一個標準的 CentOS 發行版本上,rpm -qV 這個指令應該不會傳回任何輸出。如果這些指令傳回輸出,那應有些檔案曾被修改,而你很大機會不是在使用正版的 CentOS。慣常出現的改動包括排除某些套件(多數做在 /etc/yum.conf 裡),或者取代標準的 CentOS 軟件庫(這些是在 /etc/yum.repos.d/CentOS-Base.repo 內定義的)。
2.4. 被更換的核心套件
很多以 CentOS 為基礎的 VPS 更換某些核心套件。Perl、Apache、PHP 及 MySQL 是常見的例子。下游供應商有時會在 yum 設定檔為某些套件加入 exclude=,執行以下指令可顯示它們出來:
grep -ri exclude /etc/yum.*
假如你是由於無法安裝(舉個例說)某個 Perl 或 PHP 模塊而被轉介到這頁,你很大機會擁有該套件的非標準版本。
要引證這個問題,你應該先檢查問題套件的版本,然後比較 CentOS 的 base 及 updates 軟件庫內所提供的套件版本。譬如說,CentOS 5 的 Apache 版本應該是 2.2.3;PHP 是 5.1.6;Perl 是 5.8.8。此外,你亦可以用 rpm -qV 來檢查所安裝的套件是否有檔案被修改了。
3. 這又如何?既然它建基於 CentOS,為何你不會支援我?
如上所說,這些改版 CentOS 將發行版本的主要部份改掉。我們沒有參予在這些改動中,因此並不知道更改的內容或幅度。我們所提供的建議都建基於使用 CentOS 小組提供的正版 CentOS 而累積的知識及經驗。這些建議有可能違反你的主機代管供應商的服務協議,甚至乎損壞你的系統。正因如此,我們無法為你提供支援。
4. 好,我沒有正版 CentOS。現在怎樣辦?
基本上你有三個選擇。
假若你的主機代管供應商聲稱提供正版 CentOS,第一個選擇就是要求他們如此做。要不然,你可以找另一間提供正版 CentOS 的供應商。
第二個選擇就是沿用現有的非標準 CentOS 安裝。但由於上述所解釋的原因,這意味著你不能以 CentOS 社區作為支援。你必需與你的改版 CentOS 供應商協商穫取支援。
第三個選擇就是親自修改你的非標準 CentOS 安裝,令它看似一台正版的 CentOS 安裝。zh-tw/TipsAndTricks/BrokenVserver 頁裡提供了更多有關如何這樣做的資訊。假如你因損壞系統或違反服務協議而導致資料或金錢上的損失,我們不會負責任。
Translation of revision 17
