如何根據(jù)實際情況選擇最合適的Linux?
來源:塔塔 更新時間:2014-10-11
與其它大部分桌面及服務(wù)器操作系統(tǒng)不同,Linux擁有多種多樣的版本及種類供廣大用戶任意選擇,而且它們?nèi)炕谕惶淄ㄓ眯蚅inux內(nèi)核以及一系列GNU用戶空間工具。如果大家正在運行Linux服務(wù)器或者Linux桌面系統(tǒng),那么最重要的一點就是確保自己真正理解不同Linux發(fā)行版之間的差異所在,并根據(jù)這類區(qū)別為實際使用狀況選擇最合適的針對性方案。如果各位對此還感到有些信心不足,別怕——今天的文章就將幫助大家解破迷津。
由于Linux屬于開源軟件,因此Linux發(fā)行版的具體數(shù)量也實在相當龐大、甚至難以準確統(tǒng)計。不過從另一方面看,真正能夠在市場上獲得可觀份額比例的發(fā)行版并不太多,目前商用Linux部署領(lǐng)域的幾大競爭者分別為:紅帽企業(yè)Linux(簡稱RHEL)、CentOS、Fedora、Ubuntu、Debian以及OpenSuse。
風(fēng)格與實質(zhì)
其實不同發(fā)行版之間的大部分差異都只能算是細枝末節(jié)。它們所高度關(guān)注的定制對象其實主要來自小處,而非核心功能。文件系統(tǒng)布局、配置設(shè)定、更新機制以及綁定配置工具可能千差萬別,但它們的相似之處要遠遠多于區(qū)別所在。
即便如此,不同發(fā)行版之間仍然存在著明確的劃分,而其中最主要的部分在于系統(tǒng)設(shè)計層面。當面對生產(chǎn)環(huán)境下的Linux管理工作時,大家會發(fā)現(xiàn)各類發(fā)行版在穩(wěn)定性以及對不同主流開源軟件包的支持能力等領(lǐng)域存在顯著差異。如果不能準確把握這些源于細微的分別,我們在部署并運行自己的應(yīng)用程序時可能會將原本一帆風(fēng)順的流程搞得波瀾翻騰、暗流涌動。
首先以Web服務(wù)器為例進行分析。所有Linux發(fā)行版都綁定有Apache Web服務(wù)器,但不同版本在實施Apache所使用的文件系統(tǒng)布局及配置機制方面存在著些許不同。
舉例來說,Ubuntu將Apache版本2稱為“apache2”,而CentOS與RHEL則將其稱為“httpd”。這將直接影響到Apache配置文件在不同發(fā)行版當中的實際保存位置。在CentOS與紅帽Linux中,我們可以在…/etc/httpd目錄下找到這些配置文件; 而在Ubuntu當中,其位置則在…/etc/apache2當中。除此之外,Ubuntu及其它一些發(fā)行版可能會將Apache文檔放置在…/var/www當中,而CentOS與RHEL則將其保存于…/var/www/html之內(nèi)。
再有,Ubuntu提供一套自主開發(fā)的Apache配置管理方案,允許管理人員將Apache配置片段分別放置在/etc/apache2/sites-available與/etc/apache2/sites-enabled當中,從而利用a2ensite以及a2dissite等定制化命令將這些片段在Apache中遷移與載入、借此實現(xiàn)管理目的。也就是說,大家能夠通過命令行隨意啟用或者禁用虛擬網(wǎng)站。CentOS與RHEL并不提供這樣的功能,因此我們需要以手動方式對配置文件進行管理。
Ubuntu提供的方案并不一定更好或者更差——其實際效果如何還是要視用戶的具體需求而定。一方面,它確實能夠更為輕松地完成網(wǎng)站設(shè)置等操作; 但在另一方面,大家也需要將自己的配置方案進行針對性調(diào)整、從而使其能夠與自定義配置命令切實對接。經(jīng)驗老到的Apache管理員可能覺得直接手動調(diào)整更方便,但新手用戶們則往往更認同Ubuntu提供的解決方案??偠灾?,到底孰優(yōu)孰劣還是要由廣大用戶自行判斷。
其它一些差異同樣不容忽視。在默認情況下,Ubuntu會鎖定root用戶,同時要求管理員在安裝流程中創(chuàng)建一個本地用戶; 此用戶擁有使用sudo命令的權(quán)限、旨在執(zhí)行與root用戶相等同的各項任務(wù)。CentOS與RHEL則不提供此類限制,而且允許root用戶對所有內(nèi)容加以訪問。
某些發(fā)行版還提供多種定制化配置工具。Suse Linux(以及OpenSuse)采用YaST(全稱為Yet another Setup Tool),這款系統(tǒng)安裝與配置管理工具在其它Linux發(fā)行版中并不存在。
守護程序中的玄機
另外值得注意的是,當前發(fā)行版當中可能采用相當廣泛但卻無法與陳舊版本共享的設(shè)計機制。舉例來說,systemd在各大主流Linux發(fā)行版的最新版本中被用于取代sysvinit,并從根本上改變了服務(wù)器在運行這些發(fā)行版的啟動、載入以及管理服務(wù)的具體方式(但這種解決思路也引發(fā)了一定爭議)。這些發(fā)行版的原有版本并不提供systemd,因此無法享受到由此帶來的執(zhí)行效率及性能表現(xiàn)提升。如果大家正在選擇理想的Linux系統(tǒng)版本,這一點確實值得認真考慮。
不同Linux發(fā)行版之間的另一大關(guān)鍵性區(qū)別元素在于軟件包更新機制以及軟件包的更新頻率。在Ubuntu與Debian當中,大家可以使用Apt(即高級軟件包工具)來處理與發(fā)行版相關(guān)的更新工作。這款工具允許用戶對個別軟件包或者系統(tǒng)整體進行更新。而在RHEL、CentOS、Fedora以及其它一些發(fā)行版中,Yum(全稱為yellodog Updater, Modified)則扮演著軟件包管理工具的角色。Apt與Yum采取較為相似的運作方式,允許管理員配置自定義軟件庫,并輕松實現(xiàn)軟件包升級以及系統(tǒng)維護工作。
總體而言,大家可以通過以下概述了解各類主流Linux發(fā)行版的具體特色。
各大主流Linux發(fā)行版特性一覽
RHEL與CentOS
采用穩(wěn)定但略為陳舊的內(nèi)核及基礎(chǔ)軟件包。這些版本的發(fā)布周期較長,而且“當前”軟件包通?;趦赡昵暗能浖姹尽6邔儆诓渴鸱秶顬閺V泛的Linux發(fā)行版,同時也是老牌Linux管理員們的最愛。
Fedora
穩(wěn)定性略遜于前兩者,但內(nèi)核與軟件包的更新頻率更高。通常被作為RHEL與CentOS的測試性發(fā)行版。
Ubuntu
將穩(wěn)定的舊有版本與新型維護機制相結(jié)合,從而提供穩(wěn)定性略遜但卻更具更新時效性的解決方案。其LTS版本適用于那些對穩(wěn)定性及長期支持服務(wù)較為重視的管理員,在使用層面上也更適合新手用戶。
Debian
Ubuntu以Debian為基礎(chǔ),因此大家能夠在二者之間找到頗多相似之處。Debian同時提供三種版本供大家選擇:“穩(wěn)定版”、“測試版”以及“非穩(wěn)定版”。生產(chǎn)型工作負載顯然應(yīng)該使用“穩(wěn)定版”,而其發(fā)布周期也相應(yīng)更為漫長。
OpenSuse
盡管屬于紅帽發(fā)行版的遠親,但OpenSuse與其它各類Linux版本都存在顯著差別。它依賴于YaST配置工具,而且提供引入Novell及微軟解決方案的可用版本。
在多種方案中做出正確選擇
在選擇Linux發(fā)行版的過程當中,通常需要認真考慮以下幾種關(guān)鍵性因素:
熟悉性。堅持使用自己所熟悉的Linux發(fā)行版,由此帶來的優(yōu)勢往往遠大于使用其它較為陌生的發(fā)行版本。如果對CentOS與RHEL較為了解,那么從長期運行角度看這些版本要比其它發(fā)行版更具便捷性優(yōu)勢。除非服務(wù)器對此有強制要求,否則大家最好使用自己熟知的發(fā)行版選項。
便捷性。就應(yīng)用程序堆棧的同質(zhì)性來說,值得考量的因素也很多。保證整套堆棧當中使用同樣的發(fā)行版本幾乎成為工作當中的主要環(huán)節(jié)。如果大家的應(yīng)用程序服務(wù)器運行的是CentOS,那么我們的數(shù)據(jù)庫服務(wù)器也同樣應(yīng)該使用CentOS——除非存在不可妥協(xié)的理由,否則請務(wù)必保證不同服務(wù)器設(shè)備選擇同樣的Linux操作系統(tǒng)。
服務(wù)器要求。最后,大家所選擇的Linux發(fā)行版也受到所需要部署的應(yīng)用程序及服務(wù)項目的影響。舉例來說,如果服務(wù)器必須運行MySQL或者PHP等常見軟件包的最新版本,那么大家最好選擇CentOS或者RHEL的穩(wěn)定版本——這些版本擁有周期較長的支持規(guī)劃,能夠確切符合合規(guī)性方面的要求。除此之外,大家可能還需要使用大量由第三方開發(fā)商提供的其它軟件庫以及由眾多貢獻者打造的使用包,這些方案由于并非來自系統(tǒng)官方、因此有可能帶來支持性問題。在某些情況下,大家可能還需要創(chuàng)建自己的軟件包RPM或者定制化軟件包,并保證它們能夠與最新軟件包版本順利對接與協(xié)作。
除此之外,還有研究表明Fedora已經(jīng)能夠提供大家所需要的MySQL或者PHP版本,因此使用Fedora能夠幫助各位有效節(jié)約時間及精力。在另一些情況下,Ubuntu或者Debian可能更符合各位服務(wù)器對于軟件運行的要求,因此即使對這兩類發(fā)行版不太熟悉、大家也應(yīng)該認真考慮加以使用。
大家還可以根據(jù)自己預(yù)先規(guī)劃好的應(yīng)用程序或者服務(wù)堆棧作為基礎(chǔ),考慮哪些發(fā)行版最適合其實際需要。再有,大家還可以從其它一些Linux發(fā)行版當中找到部分相關(guān)解決方案。大家最好能堅持使用這些版本以確保整套系統(tǒng)擁有出色的兼容性表現(xiàn)。
穩(wěn)定性。最后,從保守角度看強調(diào)穩(wěn)定性也是很重要的一點。在默認情況下,穩(wěn)定的操作系統(tǒng)版本應(yīng)該成為大家的首選方案。如果當前的穩(wěn)定版本無法滿足對于服務(wù)器對軟件的要求,那么使用更新版本要比采用配備新型軟件包的原有穩(wěn)定性陳舊版本更具實際意義。
最好不要讓生產(chǎn)型服務(wù)器運行來自各家供應(yīng)商的非穩(wěn)定或者測試操作系統(tǒng)版本。某些管理員可能會對這條指導(dǎo)意見擁有自己的理解,認為這意味著我們不應(yīng)該在生產(chǎn)服務(wù)器之上運行非LTS版本的Fedora以及Ubuntu系統(tǒng)。雖然這確實可算是一條值得借鑒的通行規(guī)則,但例外情況總是存在的。充分了解所涉及的風(fēng)險以及可能出現(xiàn)的實際問題,我們通常就能夠充分發(fā)揮出非穩(wěn)定或者測試版本的潛在優(yōu)勢。
在很多情況下,Linux發(fā)行版的選擇也并不完全取決于大家的個人考量。如果大家需要使用一套VPS(即虛擬私有服務(wù)器)或者云服務(wù)器實例,甚至是在托管設(shè)施中部署專有服務(wù)器,大家往往會擁有一系列由供應(yīng)商提供的受支持發(fā)行版組合。對于各家主流Linux操作系統(tǒng)供應(yīng)商而言,這些受支持的發(fā)行版通常來自RHEL、CentOS、Fedora、Ubuntu、Debian以及OpenSuse的部分子集。
一部分供應(yīng)商只提供面向CentOS以及Ubuntu的版本,也有一些專門打造以Fedora與Debian為基礎(chǔ)的發(fā)行版。少數(shù)供應(yīng)商提供的版本以O(shè)penSuse為基礎(chǔ),其發(fā)行版數(shù)量也基本維持在四到五個之間。除了前面提到指導(dǎo)性意見,大家也可以結(jié)合下面這份表格了解哪種Linux發(fā)行版最適合自己的實際項目。
當然,大家也可以多多體驗不同Linux發(fā)行版、并結(jié)合感受選出最合適的選項,這應(yīng)該能保證各位發(fā)現(xiàn)最能滿足個人需求的項目。