開發者往往希望系統可以最接近他們想象中的樣子,因此,Linux最終成為了大多數開發者的桌面環境。Linux是無限可定制的,它幾乎可以輕松訪問開發者可能需要的所有軟件。但對開發人員來說,一個好的Linux環境必須具備一些關鍵屬性,例如功能豐富,靈活,穩定,易用。
本文,我們從開發人員的角度來看看2016年比較重要的五大Linux發行版版本升級,以及它們是如何構建以滿足開發人員需求的,提到的所有發行版都有幾年甚至幾十年的用戶支持和發展。
Ubuntu,Mint,Fedora,CentOS和OpenSuse,這些發行版中的每一個都有不同的優點和缺點,每個都以自己的方式平衡了靈活性,易用性和穩定性的需求。
Ubuntu及其衍生版本Linux Mint都為用戶提供了不錯的用戶體驗,Fedora也在不斷更新各個版本,雖然發布的間隔周期比較短,CentOS似乎最適合那些打算專門為RHEL開發的人,但它也吸引了希望前後版本之間變化不要太大的開發人員的注意。OpenSuse Leap通過其智能設置,子卷以及為文件系統管理提供的強大工具集吸引了大量開發人員。
1、Ubuntu 16.04 LTS
一小部分Linux發行版往往會成為用戶最常見和最可靠的選擇。Ubuntu Desktop可以算是最受歡迎的一個,當然也是最受尊敬和曝光率最高的其中之一。與Ubuntu相關的版本,尤其是LTS(長期支持)版本,是開發人員絕對不會後悔的選擇。
選擇Ubuntu時,開發人員使用LTS版本是最有意義的,它可以獲得五年的支持。 使用LTS版本,可以推遲主要版本修改帶來的系統不穩定性,但不會影響安全更新。開發人員很討厭因為一個新的操作系統版本更新,而不得不停止一切工作,重新配置環境,有了LTS版本,省去了這一大麻煩。
另一個好處是,Ubuntu的安裝過程允許添加對專有硬件驅動程序和軟件的支持。並不是每個開發人員都需要這些,但LTS在一開始就提供了一個方便的一次性選項。 此外,如果在VirtualBox VM中進行Linux開發工作,Ubuntu 16.04 LTS會預先安裝驅動程序,以將縮放和鼠標集成。(但是,它似乎沒有預安裝剪貼板支持程序,如果你想要,你需要安裝VirtualBox Guest Additions。)
從程序員的角度看,Ubuntu默認的Unity桌面環境有很多優勢,但如果你喜歡使用不同的環境,可以通過命令行添加一個,Ubuntu還提供了一些可選的桌面(包括GNOME,KDE,Xfce和LXDE)預裝。
Ubuntu中一個特別適合開發者的功能是命令行工具Ubuntu Make(默認情況下不安裝,但很容易修復)。眾所周知,Umake為開發人員提供了一種方便的方式來安裝Node.js,Dart,Rust,Swift,Go,Scala,Android等整個開發棧,工具和各種IDE。這在諸如Ubuntu Desktop 16.04 LTS的環境中是有用的,因為它允許開發棧本身不斷更新,而不會潛在地占用系統的其余部分。
最後,通過Canonical存儲庫可以直接獲得各種各樣的IDE。你不僅會發現Eclipse,NetBeans和MonoDevelop,還有一些不太知名的項目,如Ninja,Anjuta和Geany。
2、Linux Mint 18.1
Linux Mint是Ubuntu的衍生產品,但它與Ubuntu不同,保留了自己的特點。 Mint的首要目標是提供一個舒適的桌面環境,當然這幾乎會是每個開發者考慮的首要因素,你可能會問開發人員選擇用戶發行版時考慮的幾大要素是什麼?
一個很簡單的答案:開發人員也是用戶,許多功能開發人員用的舒服,用戶也會很舒服。例如,如果你只是想要一個開箱即可的功能,Mint是最佳選擇,它不但支持Linux系統的EXT4格式,而且還支持Windows的FAT32和NTFS 格式。用戶可以隨時自定義創建,例如,BtrFS用於OS,XFS用於OpenSuse用戶數據。但是Mint默認的是sane,用戶可以在桌面環境中安裝經常使用的第三方和未開源的驅動程序。
在Linux Mint 18.1正式版中,用戶能夠根據自身喜好來選擇Cinnamon或者MATE桌面環境。它很有韌性,Cinnamon(和Mint本身)是高度可配置,腳本化和可自定義的。大部分開發工作都是在Python,JavaScript和C中進行的,這意味著任何擁有這幾門編程語言開發經驗的開發人員都可以自由地潛入Mint和做一些調整。
Mint默認存儲庫中提供的軟件是Ubuntu中的,這對開發者來說是個好的消息,因為Ubuntu在這方面比較齊全。 許多流行的開發工具Eclipse,NetBeans,Geany,MonoDevelop,Lazarus(自由Pascal IDE)等,都可以直接使用,無需連接到外部repo或重新下載安裝。你也可以從Linux Mint社區網站安裝Ubuntu Make,讓Umake的開發堆棧一觸即達。
最後,因為所有的Mint版本都基於Ubuntu LTS版本,所以可以保證享受到長時間的服務更新。例如,Mint 18.1正式版本預計將在2021年4月之前獲得全面支持。
3、Fedora 25
Fedora長期以來一直是紅帽企業贊助的Linux功能出色的試驗場。它也成為Linux開發人員很好的一個桌面環境,特別是現在Fedora已經被拆分成獨立的桌面版,服務器和雲版本,桌面版當然是這裡的重點。
Fedora每年兩次的發布周期對於那些所有東西都喜歡用最新版本的開發者來說既是好消息也是壞消息。好消息是,新版本不會自動使現有版本無效,因此你可以堅持使用一段時間的舊版Fedora。壞消息是,發布後僅支持個人版本13個月,並且沒有長期支持版本。如果選擇Fedora,你至少需要每年執行一次完全升級,否則將失去支持。 這意味著你可能需要將用戶和開發數據保存在單獨的分區上,以防止數據消失。
Fedora的默認桌面是GNOME 3,這是相當合理和易於使用的。只需要很少的桌面體驗開發人員就可以安裝另一個桌面,或者直接使用另一個預裝的桌面獲取另一個版本的Fedora(其中一個Spin)。 KDE Plasma,XFCE,LXDE,Mate-Compiz,Cinnamon,甚至OLPC SOAS桌面都可以使用。
每個新版本Fedora的發行說明都針對使用操作系統的開發人員。這些筆記詳細介紹了與Fedora打包的不同語言用戶以及可用於不同語言的新工具(例如Fedora 24的注釋中的新GCC用戶)。
Fedora的快速升級周期意味著其上捆綁的編程語言和運行時往往都是最適合生產的最新版本。例如,Fedora 25包括Ruby on Rails 5.0和Go 1.7。你甚至可以在最新的Fedora中找到Mozilla的Rust ,Python的多個版本可以並排使用以及PyPy和Jython,Docker的最新版本也包括在內。
Fedora軟件倉庫中的開發工具從傳統產品(如Eclipse和Vim)到MonoDevelop,Code :: Blocks和Geany等。 你甚至可以找到Arduino和MCU 8501硬件板的IDE。 沒有Ubuntu,但Red Hat的的RPM包格式無處不在,還支持Docker和Flatpak,與此同時,還有很多可以選擇添加的第三方軟件。
4、CentOS7
CentOS 是一個基於Red Hat Linux 提供的可自由使用源代碼的企業級Linux發行版本。CentOS被紅帽愛好者稱為沒有序列號的RHEL,主要是建立一個安全、低維護、穩定、高預測性、高重復性的 Linux 環境。雖然CentOS項目和紅帽在2014年就開始合作,但CentOS在技術上是一個獨立的項目,它提供了幾個版本的RHEL代碼,可能會很吸引開發人員。
使用CentOS的主要動機來自於系統的整體穩定性和其與RHEL二進制的完全兼容性。如果你正在開發專門用於RHEL的軟件,兼容性將是最重要的因素,但是許多開發人員被類似於RHEL的穩定性所吸引,因為它保證了可預測和可重現的環境。和RHEL本身一樣,CentOS每個版本也可以獲得多年支持。例如,CentOS 7將會一直獲得支持到2024年6月30日。
現在的壞消息是,首先,在給定版本的CentOS中提供的軟件幾乎從不改變。對操作系統的支持包括操作系統隨附的每個軟件包的主要版本的錯誤和安全修復程序,但不包括對這些軟件包的實際升級。例如,CentOS 7附帶的Nmap版本是6.40,而Fedora附帶的版本是7.12。
更多的壞消息是,在任何CentOS版本中默認情況下不會包含桌面版中許多常見組件。例如,你不會在任何默認的CentOS存儲庫中找到支持MP3播放的組件。對於諸如IDE的通用開發工具也是如此,默認情況下,CentOS中唯一可用的開發工具是Emacs和Vim之類的。
這個問題也不是很難解決,作為CentOS最大的第三方存儲庫之一,Red Hat軟件集合倉庫提供了軟件集合以滿足特定需求。例如,“devtoolset”集合包含Eclipse及其所有支持軟件,安裝程序只需要輸入:sudo yum install centos-release-scl and sudo yum install devtoolset-4。另一種方法是可以在CentOS上安裝Docker嘗試滿足需求。
CentOS的安裝過程與Fedora的安裝過程幾乎相同。唯一的主要區別是選項,如是否安裝kdump等實用程序或啟用安全策略。但是,如果你想要一個完整的桌面開發環境,你必須自己在安裝後手動設置或通過第三方庫。
或者,你也可以使用LiveGNOME和LiveKDE。然而,雖然這些版本可以給你一個桌面環境,但它們不能提供額外的以開發者或桌面為中心的軟件。再次提醒,你必須有自己的工具。
5、OpenSuse Leap
OpenSuse Leap是Suse面向企業的桌面發行版的轉折。其是將Suse Linux 企業產品的成熟度和可靠性與現代硬件和定期更新的軟件相結合。Leap就像Fedora和RHEL(或CentOS)的混合,但它對開發人員最大的吸引力可能是它在智能配置方面的應用。
當安裝OpenSuse Leap時,第一個要注意的細節是如何對系統進行分區。默認情況下,根分區使用BtrFS格式化以增強系統保護,為XFS使用單獨的主分區格式化以實現靈活性。BtrFS提供了一些對開發者友好的優點:你可以拍攝文件系統快照,並將它們回滾,甚至可以直接回到進入快照之前的位置。
BtrFS提供的另一個特定於開發人員的優勢是支持子卷(在每一個物理分區內一個或多個獨立的可掛載的文件系統)文件系統快照(在一個確定的時間點上一份子卷狀態的副本) Leap的設置配置了幾個特定於應用程序的子卷,例如MySQL,MariaDB,PostgreSQL,後台打印程序,日志和Mailman默認都有自己的子卷。當然,也可以在安裝過程中添加子卷,或者如果要回退到普通的ext4或XFS,也可以這樣做。
在設置時還提供了許多用戶環境選項,不僅是GNOME和KDE,還有Xfce。Leap現成的存儲庫包括開源和非開源軟件,盡管這些存儲庫中可用的軟件集合對於開發人員來說有點少。 例如,不包括Eclipse,但Suse為許多應用程序(包括Eclipse)提供了一鍵安裝的在線軟件目錄。 安裝程序會自動訂閱相關存儲庫以保持更新。
我認為BtrFS快照是Leap的一大優勢。Leap還包括Snapper,一個圖形工具,可以對快照進行更改,並選擇性(逐個文件,逐個目錄)或一次性回滾更改。如果你發現給定目錄的內容在一段時間內默默變灰,但只想在不中斷其他工作流的情況下在該特定目錄中恢復特定更改,則快照程序將非常方便。
Leap的發行說明中沒有明確針對開發人員的部分,因此你需要梳理整個文檔以查看是否有任何與開發人員相關的內容。例如,Leap 42.2的發行說明中的系統升級部分解釋了/ var / cache初次安裝時是自己的BtrFS子卷,並提供了如何在現有系統上進行此類更改的說明。
根據Suse文檔,OpenSuse Leap的每個主要版本(小數點向左側移的版本)至少支持36個月,直到下一個重要版本的Leap可用。次要版本,版本更改在小數點右側的情況每年可能都會出現,這類可以獲得18個月支持。
Suse提供了一個優秀的操作系統構建服務稱為Suse Studio,你可以使用現有版本的OpenSuse Leap作為基本映像,裝備任何數量的軟件包,進行多項更改(例如,向生成的映像添加文件或在映像創建後運行特定腳本),並可以以幾乎任何圖像格式分發結果,你可以從成千上萬個預先存在的操作系統映像中選擇一個作為自己的生產基礎。