標籤:

哪種Linux發行版適合程序員做開發?

請說明理由。拒絕互相嘲諷。

本人只接觸過Ubuntu Gentoo和Fedora。

Windows和OS X不在討論範圍之內。

如果不同的發行版適合不同的程序員,請帶上開發的方向


更新於2017年4月,人生苦短,請用manjaro或者linux mint 或者ubuntu

====

由於前些天一代i3的本換了個ssd,重換系統,於是試了試Elementary OS和Mint17.1,已入Mint坑!

2015/3/16 再更新, 關於樓下某位答主提出的關於發行版的選擇arch是不二選擇的問題,那位題主說我們自動把答案歸入了比較ubuntu,fedora,opensuse和centos的優劣上了,這個問題我想解釋一下。

首先要明確的是,Arch是非常優秀的一個distribution!但是上手難度相對於三大商業發行版派系來說要高很多,如果不是對linux抱有相當大興趣的,我的建議是可以不用拿來當主力機來用。我的回答主要目的之一是為了幫助更多處於觀望和初期接觸linux的同學,希望他們能夠通過主流的髮型版來感受到linux魅力,投入到開源的世界裡來。

關於開發,本人水平所限,本文說的開發是基於linux這個platform去開發程序,去完成日常學習工作和娛樂等等。所以我認為一個可持續穩定的發行版才是考慮的因素。其次考慮到一個主流髮型版的支持現在基本能持續2-3年,而個人設備現在更替的速度,也差不多是3年一換代,到了差不多的時候可以買新機再配置當年最新的長期支持版就可以了,所以,滾動更新這個特性沒有必要作為專門的考慮;其次opensuse也是具有滾動更新的版本的。

當然,如果想深入學習linux的話,答主的建議也是當你通過某個主流發行版入門後,直接選擇Arch。PS:現如今Arch的wiki可以說是所有distribution里做的最好的。

------------------------------------------------------------------------------------------------------------------------------------

2015/3/15 更新 決定細緻的說一下我對關於怎樣選擇發行版的考慮。

當我們想要用linux的時候,首先明確你要用linux的目的: 程序開發,學習linux,所以問題來了:

我該選擇那個發行版??

linux出去一些個別的distribution之外,其實是三大派系:一是Debian系,ubuntu是其非常流行的衍生版本,目前最新長期支持版為ubuntu 14.04 LTS;二是RH系,Desktop發行版為Fedora,目前最新版本為Fedora21;三是SUSE系,Desktop發行版為opensuse, 目前最新版本為opensuse13.2;

關於發行版本的選擇,對於程序開發,我們首先要考慮的是 穩定易用不折騰,其次是 漂亮好看看著舒服

所以首先絕對不建議fedora,bug太多,時不時報錯(Fedora21),因為fedora存在的意義是給rh的enterprise版本測試新特性使用的,所以更新非常激進,bug也比較多,所以穩定性層面來說,不是很適合拿來開發用;

考慮觀賞性,而ubuntu LTS版本和opensuse ,在保持新特性的同時,穩定性(包括GUI 的穩定性)已經相當不錯了。而且無論是unity桌面,KDE桌面還是Gnome桌面,現在都可以配置的很華麗。所以這兩個發行版關於漂亮方面都能夠滿足。如果屬於極簡主義者,請選擇Gnome桌面的opensuse,如果對自己桌面有配置強迫症,那麼請選擇Unity桌面的Ubuntu或者KDE桌面的opensuse

考慮不折騰,ubuntu 和opensuse對硬體的支持都非常良好,但是如果你是Intel+Nvidia雙顯卡,請直接選擇Ubuntu;如果和win組成雙系統,建議選擇ubuntu; 如果單奔,那麼ubuntu和opensuse都可以。

考慮易用性,ubuntu和opensuse對軟體支持都非常優秀,一個擁有software center的apt包管理使用deb的雙子星,一個是Yast+zypper使用rpm的黃金組合,這個自己選擇。

最後一點關於開發環境,二者基本沒有區別,請安裝好你選擇的髮型版,配置好開發環境,然後努力的寫代碼!

PS:建議嘗試英文的開發版,而且一定要會爬梯子google(牆內),無論是對語言的提升,還是對linux的學習,都有著巨大幫助!

---------------------------------------------------------------------------------------------------------------------------------

關於用linux distribution做開發,我建議參考以下幾點:1.省事!!2.漂亮,自己看著舒服用著也舒服。 3.穩定!!

自己把ubuntu, fedora ,opensuse全部都使用了一段時間,最後選擇主力機用的是ubuntu 14.04LTS,另一台電腦用的是opensuse 13.2

說說我的看法,其實我感覺在用戶方面使用來看,其實不是在用不同的發行版,而是在用不同的桌面環境,gnome和KDE,還有unity。因為各個髮型版的設計理念和設計哲學都差不多,差別就在包管理和一些細節設計上。

至於debian,rh,cent os這些用的人不少,穩定是穩定,更新太慢,新特性支持較少;而arch,gentoo,太激進,太折騰,個人不建議開發拿來主力機,剩下就是非常流行的默認unity的ubuntu,默認gnome的fedora,默認kde的opensuse,這三個distro都有商業公司和社區在支持,所以一般遇到問題比較容易解決。

個人喜歡ubuntu14.04LTS, bug不多,桌面特效很炫,軟體支持非常豐富,而且對硬體的支持非常到位,所以目前在當主力機用;opensuse13.2也非常好,kde使用視覺習慣偏向windows,但自主性很強大,配置好了非常華麗,而且流暢!軟體支持也不錯,而且一鍵安裝很方便,目前跑在我10年的i3 一代 4 G內存的本非常順暢。 Fedora21 ,個人不太喜歡,bug多,gnome3也就是那麼回事,跟另外兩個distro相比,感覺不出來啥優點能吸引我。

所以最後的建議就是ubuntu的長期支持版和opensuse,配置好環境就別折騰了,好好寫碼才是正理!


半夜總有回答這種帖子的衝動啊。

標準答案肯定是『視愛好而定』:喜歡開箱即用的選Mint,喜歡支持廣泛的選Ubuntu,喜歡穩定的選Debian / CentOS, 喜歡port-like系統的選擇Gentoo,喜歡軟體更新的選Arch。

另外一種標準答案是『區別不大』,確實,今天Linux軟體日趨完善,開源生態圈工具繁多,已經不是10年前5年前的樣子了。

第三種標準答案是『和伺服器環境一致』,這個就不用解釋了。

但是我還是要投Arch一票。不是說別的系統不好,而是說我真的非常享受Arch的優點。

1) 完善的單點包管理系統,你可以用同一套軟體管理系統管理Arch官方的源,網友製作的軟體包,從源代碼編譯的軟體包,同時,你可以輕易的重新編譯某個特定的系統軟體包,增加/修改一兩個編譯選項,或是製作自己的軟體包。根據我的經驗,Arch的軟體包模型非常好的避免了其他發行版不同軟體源之間的衝突,或者是不同軟體版本共存的依賴問題。

2) Rolling - 只有一個不斷更新的版本,沒有版本更新的困擾,就沒有系統是13.04結果發現某個軟體只支持12.04和13.10的困擾,查看文檔的時候不用擔心某個特定版本的解決方案適不適合你當前的系統。你也可以迅速享受新編譯器、新軟體的特性。

3) 強大的社區支持。Arch的文檔質量就不用我再安利了。軟體更新快速、bug修復快速,官方源和AUR的軟體數量龐大。

4) 簡單、一致的系統模型: Arch基本上不對上游軟體包作修改 - 你使用的是官方的systemd, crond, gnome,vim, 所以所有Linux上通用的步驟,在Arch上都適用。基本上,除了看看pacman/abs是怎麼管理軟體包的之外,你無須額外的知識來管理一個arch系統。

5) 易用穩定: 和流行的觀點相反,Arch其實是非常易學易用的,而且非常少出問題。這主要體現在軟體管理統一、抽象層薄,軟體更新快,所以你遇到的因為抽象、更新、版本,衝突帶來的問題非常少,標準的實現和豐富的文檔也省去了很多的學習成本。順便黑一句Apple,xcode的bug不見減少,OS X的bug倒是越來越多了,而且越來越慢。

6) 飛快。各種意義上的。

Update - 很多人覺得Arch是一個月不更新就掛 - 我經常三五個月不更新完了之後pacman一次的,當然我平常在伺服器上做的事情也比較簡單,就是跑跑webserver。Arch主頁一般都有news,明確幫你解決升級的時候可能遇到的問題 - 我看了一下,上一個可能需要手動解決的問題在去年10月份,和特定的java包有關,再上一個是去年二月份,而且前提是你的鍵盤是PS/2,再往前數是去年9月份,對sysctl.conf的處理有點變化,把文件改個名就好了。考慮到大部分的distribution是6個月一更新,這個周期不能算短吧。


Mint

APT是最好的軟體管理器

Mint的美工也比較好,mate和cinnamon都好看

缺點:不能跟debian一樣換個源就圓潤地升級,國內源較少(可選擇hust的源)


不要太糾結這個問題。真正有價值的編程系統全都是跨平台跨發行版的,而且來來回回就是那麼幾十個,不管用什麼發行版配置完畢以後都一樣。比如隨機選一個,Ubuntu好了。這個發行版也有一些優點,比如對AppArmor的支持最早。這年頭瀏覽器/網路服務不用AppArmor保護等於在0day世界裡裸奔


以前大學時候一直在用ubuntu,後來工作之後用了debian就不想回去了。


我覺著任何一個Linux的發行版,只要用熟了就好,因為Linux的工作環境都是自己配置的,每個人的Linux都會很不一樣,而不同的Linux發行版,只要你有足夠耐心,都可以配置成只有你習慣的Linux。

用在自己的電腦上,當然是折騰的時間越少的Linux越好,我覺著ubuntu就很不錯,雖然很多人吐槽,但是至少我不用折騰驅動之類的,安裝也簡單,節省了不少時間。

用最少的時間搭建起自己專屬的工作平台,這就是我選擇發行版的原則。ubuntu應該是個不錯的選擇。


我剛剛從fedora21換成ubuntu14.04,原因是某天突然就開不開機了。上歲數了真心不想天天折騰系統玩。BTW聽說openSUSE不錯


arch咯. 想要啥樣子就自己弄成啥樣子. 每個人都有自己的喜好啊.


opensuse!


ubuntu易用但實在不夠穩定,更適合新手或懶人

gentoo很牛但特別費時間,好比用cpp寫網站,性能是美好的,但得累死。

fedora還可以,推薦debian系統,易用穩定都有,可以做桌面也可以做伺服器。

做開發其實差別沒那麼大,vim在手天下我有啊。更多是一些工具軟體選擇上的差別,像tilda,tmux,zsh等,都是提高效率的好手。


喜歡ubuntu.


只有一個同學說到了CentOS嗎?

我主要是做Web開發,PHP什麼的,開始的時候不會使用Linux,所以找個最簡單的先入門。喜歡折騰,不特別折騰。

用了Ubuntu兩年,9.04~11.04,剛開始覺得特別炫酷,各種compiz特效,後來玩夠了就重裝個乾淨的專門碼代碼,再後來感覺老是GUI卡死,尤其是換了Unity之後特別不習慣,還有一個原因是Ubuntu的PHP版本太新了,生產環境是CentOS,PHP版本還是5.3,Ubuntu已經跑到5.5了,代碼寫得好好的,放到生產環境一跑,發現一大堆警告錯誤的,於是切換到了CentOS。

換到CentOS之後,那時候貌似是5.x還是6.x吧,不記得了,用的是Gnome2,感覺很乾凈,特別穩定,常年不關機,最長一次73天沒關機,中間也幾乎沒報錯。作為一個日常使用的桌面系統我覺得這個已經算是特別穩定了。

用了CentOS兩年之後,因為工作原因必須換到Windows,所以換回了win7,在一台退役的筆記本上裝個CentOS,win7上sublime text + sftp插件,putty之類的開發,感覺其實也挺好。關鍵是能打DotA。

其實選擇發行版是個比較糾結的事情,中間我也試過Debian, openSuse, Fedora, Deepin之類的,感覺都差不多(除了Gnome3特別不習慣),開始選擇Ubuntu也是沖著中文社區和網上教程多,遇到問題可以迅速找到解決方法,後來選CentOS是沖著生產環境是CentOS去的。(PS:其實中間試過裝Gentoo和Arch,Gentoo太難了,搞了幾天沒搞好,Arch也是搞了一整天才裝好的,結果第二次開機是一個月之後,悲催了,然後就格掉了)

說到最後也沒能幫助題主做出選擇,只是把我用得稍微多一點的兩個發行版說一下,希望能對題主有幫助。


試用了一段時間 ubuntu,centos,fedora之後,我表示最好用的是fedora(最新大版本號的前一個版本,比如現在是17.x,用16

版本號最後一個就行了),相對穩定,各種安裝包也有較新版(相對centos),另外英文罈子晃晃其實還是redhat系的內容、答疑、現成的三方安裝包最多(相對ubuntu)。

最最後,還是windows比較省心啊。。。


openSUSE,做個人Desktop的話完美不過了。簡單,穩定,可信賴,DE華麗(KDE可以說是openSUSE在獨立支撐推進),配置簡單,德國佬做的。

-----補充回答---

沒看到題主詳細要求,說說我,我是做C/Java開發的,後來做了一段時間的前端,後來又做的golang


Manjaro Linux

開箱即用版Arch


為什麼沒人說到Gentoo?明明很優秀的一個版本。。。只是配置內核起來需要太多的知識,不過金步國出了一個內核配置教程Linux-4.4-x86_64 內核配置選項簡介,可以配合官方手冊https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation一起安裝。

自己把這些東西都過了一遍以後,當機器穩定以後,定時備份內核配置文件.config、portage配置package.use、編譯配置文件make.conf三個文件,即使換了機器,調整一下內核和編譯的開關即可,其他的不用變,很穩定的。

Gentoo沒有版本之分,跟隨內核http://kernel.org主線升級,升級內核的時候,先倒入一下舊的內核配置,然後直接保存,然後diff一下就知道新增加了哪些配置選項,不懂的可以bing搜索含義,再重新簡單配置就好。

我自己用的是systemd的stage3,~amd64,內核跟隨官方升級kernel 4.12.9,experimental全開,用著一直穩定。如果有重大升級,官方會在你更新portage的時候,發布news,一年有一兩次,注意看就可以。

有一句說一句,Linux發行版的圖形界面慘不忍睹,各種界面都嘗試過,現在已經放棄了。所有的Linux我都不會開圖形界面。我開發是在Windows的visual studio上編碼,sftp到Gentoo上,然後make。

得益於(無奈)不開圖形界面,一般空載下內存佔用70MB,很穩定,系統也沒有升級掛過。最近systemd更換路徑usr到lib,沒注意。啟動失敗,手動指定內核參數啟動成功後改進即可。

總之,這個源碼系統很穩定,不過要求你機器配置要高,不然編譯有點慢。稍微懂一點硬體常識,不然內核配置很操蛋。懂一點英文,無障礙官方文檔,或者也可以參考Arch Linux系統的中文文檔。

說一下Gentoo和Arch Linux。Gentoo是源碼發行,Arch Linux是二進位發行,沒有證據表明Gentoo更快一點(快一點意義也不大),主要還是個人喜好。Gentoo的portage系統和USE開關我更喜歡,慢慢的可以定製出自己合適的版本。Arch Linux我也用過,每次更新感覺就忐忑不安。。。不知道現在會不會這樣了 。(???)


懶得折騰,一直使用noi官網的noi linux。

雖然僅僅是在ubuntu 10.10 的基礎上加了一些開發組件,不過至少離線安裝,傻瓜快速,基本的軟體都有。

果然好好寫代碼才是正道,向OIer/ACMer推薦。


看了這麼多評論,弱弱地問一句,就我一個在用fedora嗎?(fedora25)除了觸摸板沒法支持,其他都好啊。


Archlinux

奔了一年了 十分好用

---

  1. Arch的WIKI絕對是優秀wiki之一,社區也比較活躍,我遇到一些問題直接在官網相應包的討論列表裡都能找到討論。這一點是首推理由,大讚!
  2. 軟體源之豐富,軟體更新及時,實在是一大優勢,重中之重,加之海量的aur,免去了很多下載安裝編譯配置的麻煩。你絕對會愛上它!
  3. 滾動更新,向fedora這種半年一更挺累的,debian和centos太保守,有時候都更不上新工具的潮流,導致一些棘手的問題。打滾必須的!
  4. 最小化安裝,按需搭建。強迫症必備!(當然其他發行版也能找到最小化版本)


可以嘗試安裝一個,然後在上面用虛擬機或者docker創建其他發行版的虛擬機

如果是我自己買了一個電腦,可能會嘗試Ubuntu,然後docker虛擬化解決Ubuntu開發環境和生產環境不一致的情況。

軟體的話會選擇開源的軟體,針對開發來說,現在的開源軟體特別多


推薦閱讀:

Windows 環境下為什麼沒有免費的 PDF 編輯軟體?
Linux 有多少個發行版本?
shell程序中 2> /dev/null 代表什麼意思?
對於爹媽這些不太懂電腦的人,有哪些簡單優秀操作系統備份還原軟體可以供他們使用?
到什麼程度才叫精通 Linux?

TAG:Linux | Ubuntu |