只使用 Linux linux系统cpu使用率是怎样一种体验

长期使用Arch,Gentoo等滚动更新的发行版是怎样的一种体验?
主要的问题还是 稳定吗?适合做日常开发使用吗?还是只适合用来更新强迫症尝鲜呢?
按时间排序
读书的时候玩过,滚一次修问题修半天感觉工作环境用的话,在赶进度的时候给你来个问题,砸电脑的冲动都有了!
咦,看到大家都在晒 pacman.log, 我也跑去 VPS 上看了下,但貌似我很久以前清理过...$ head -5 /var/log/pacman.log
[ 03:38] Running 'pacman -Sy'
[ 03:38] synchronizing package lists
[ 03:38] Running 'pacman -S haveged'
[ 03:38] installed haveged (1.4-3)
[ 03:39] Running 'pacman -Syu'
是的我就是在服务器上用 ArchLinux 的异类......从12年到现在只滚挂过一次就是 /lib -& /usr/lib 那次,当时靠着 Linode 的全盘备份救回来了,之后学乖了操作前都先搞清楚会发生什么,再没出过系统级的问题而且 AUR 是我学会的第一个打包系统,现在自己服务器上内核、bind, httpd, ntp, tengine 都是自己编译打包的,盒子上的 rtorrent 也是自己打包的,用得很爽而且只要偶尔想起来了上去滚一滚,也没什么问题啦,而且一直都能用到接近最新的软件包表示很方便真的,ArchLinux 除了第一次安装折腾点,后面只要经常滚一滚,很少需要操心的...对了,我自己也有一把跑 Debian/Ubuntu 的服务器,在公司日常运维接触到的是 RHEL 系的系统,自己的域名数据库用了两台 openSUSE, 还装了个更小众的 AlpineLinux 跑个人 Wiki, 因为它的打包系统和 AUR 非常像所以毫无难度顺利上手...平时不管在什么系统上出现疑难杂症也喜欢去搜 Arch 的 Wiki 和论坛...因为大多数上游的问题都是通用的,当对整个 GNU/Linux 体系熟悉了之后不管换什么发行版都不会有太明显的障碍,除了 Ubuntu 某些连过去连过来自定义了好几层的配置文件...利益相关:日常 Win PC 用户,近期正在考虑搞个小本子装 openSUSE 42 玩_(:зゝ∠)_
⑨个月Arch,目前只出过两次问题,一次是chrome挂了,再次更新以后正常;另一次marco(mate桌面)挂了,删掉配置文件后正常,其他的没有问题,也没觉得不稳定。每周末到图书馆pacman -Syua真的很爽有木有,几乎所有软件都是最新的,而且源里东西特别多,不够的还有aur来补。wiki很全虽然基本不看-_-||
Gentoo用户。除非你用别的系统时也会有“折腾系统”这一爱好,否则不推荐。(因为Gentoo下折腾系统是必须的,所以如果你本来没这个爱好,你会感到很痛苦)如果你用别的系统的时候有大量软件由于种种原因(常见的原因是你在开发这些软件,或者你依赖于它们的特定版本或者需要用特定编译选项编译它们),需要手工编译这些软件,那么Gentoo会适合你,因为反正你本来就要折腾,有包管理器帮你自动化你的折腾不是坏事。当然即使这种情况下,在虚拟机/Docker里装Gentoo和装Gentoo-prefix也是强力的被选方案,所以还是不推荐盲目安装Gentoo。稳定倒不是什么特别大的问题,只要你不要手贱去装unstable,以及不要在上班时间去作死更新就行了。话说回来,你上班时间去把Ubuntu 14.04升级到15.10,你也会多少有点心虚的吧……跟大部分人的印象不同,Gentoo的stable非常之保守,一直用stable的话你的软件大概会落后Ubuntu一年左右。另外,Google的Chrome OS是基于Gentoo的,可见即使是小众的系统,如果它的特性适合你,你又不缺人手的话,也是可以用于严肃的开发的。当然我不知道Chrome OS团队自己用的是不是Gentoo,猜测多半还是Goobuntu吧,但是至少Gentoo能被选择作为二次开发的基础,就说明了它没有某些答主说得那么玩具。
用了一段时间Arch,滚动更新的感觉确实非常好
Arch 用戶[ 10:15] installed filesystem ()應該說對於桌面應用日常開發而言,Arch這種滾動更新的,和 Fedora 這種接近滾動的,纔比較穩定。Ubuntu那種半年一更的只適合嚐鮮和新手入門,不適合長期用。桌面用戶對「穩定」的要求其實和服務器用戶很不一樣。服務器是需要開在那裏365天24小時不間斷工作的,什麼時候掛了都不一定知道,這種時候的穩定性是要求最好能不變的都不變。桌面用,像Windows 和 OSX 都有每週每月定期更新的,這種時候偶爾有個小 Bug 對用戶而言並不是什麼大問題,軟件太老以至於你不得不手動管理一堆軟件纔是大問題。關於這一點曾經在weibo上和別人討論過,那條微博在 這裏(),我回復的東西比較長貼過來:-----------------------分割------------------------呵呵楼猪普通用户谁去看wiki?如果是高级用户,那么任何发行版本在我眼中都差不多,因为我可以随心所欲的搭配组件,定制编译内核,编译软件……所以我坚决的支持ubuntu一个用户数最多,一个商业公司运作,一个以打败微软为目标的老板…是时候了,linux桌面发行版需要有像rhel那样的异军突起高級用戶能隨心所欲地配置編譯麼?naive!arch這邊的包都是上游vanilla的包,基本除了安全補丁之外和上游發佈的穩定版一致,所以你自己編譯自己配置的包和發行版給的是一樣的,這樣纔能隨心所欲,出問題直接找上游問,看上游的文檔自己診斷,或者用編譯工具二分查找問題所在。debian/fedora/suse那邊的包都加了一堆下游補丁和下游幫助工具,不過debian/fedora/suse 還好他們做事規範認真,加的東西都至少會留文檔能查到,打個包要經過幾道測試檢驗保證兼容,你自己打包遇到問題去找上游或者找debian/fedora/suse的打包者總歸有辦法重建環境能幫你解決。Ubuntu那邊在debian的基礎上繼續加自己的私貨,而且這幫野路子的做事方法各種不規範,去看看他們的打包日誌你就知道了。這時候出問題你去找誰?找上游,上游說他沒問題啊,在他的環境下不能重現。誰知道這種問題是出自上游的代碼還是U加的私貨還是你自己的步驟不對呢,沒人知道。就算上游也用U,就算上游的CI服務器都是U(比如Travis用U12.04)也不能保證你用別的版本的U不會出問題,因爲每個版本的U的私貨API都是不!一!樣!的!比如你要用程序的托盤圖標顯示不正常?傳統Xorg的托盤圖標是用XEmbeded協議,Ubuntu覺得這個協議限制太多不好搞,去拉來KDE和Gnome開了個會議,搞出來一套libindicator協議用在Unity 12.04(KDE那邊叫SystemNotifierItems,協議是相互兼容的)。當時U對KDE和Gnome 的說辭還是我們將來都要上wayland,你看X協議下拖着這麼個拖油瓶在將來遷移到wayland的時候也是個阻礙,要不咱們一起把它換掉吧。這本身是好事情,然後Ubuntu下個版本又有新想法了(拋棄Wayland要上Mir),直接不通知任何人自己開始搞libindicator的新API,這和別人用的協議都不一樣!於是現在一個Linux桌面程序要正常顯示一個系統托盤圖標,要支持至少3種協議:XEmbeded用在傳統桌面上,sni用在Gnome3和KDE5和Unity12.4上,新的 libindicator用在之後的Unity上,然後現在Unity Touch和Unity Next要出來了,U要接着改協議。上游Qt5/Gtk3原生支持前兩種的互相轉換,在Ubuntu上的Qt5/Gtk3被他們加了私貨補丁能支持後幾種,但是這些個私貨補丁沒進上游,同時也沒考慮老版本兼容性。所以你要支持Unity的托盤圖標就必須爲特定版本的Ubuntu打包,要全都支持就必須自己寫額外測試環境版本的代碼和鏈接特定版本的庫的代碼。這對開發者來說原本是一個開發平臺,被Ubuntu硬生生拉成了多個平臺多個版本像android那樣分裂,然後Ubuntu用戶出問題了之後發現爲毛只有我U有問題啊爲毛別人的Linux都好好的啊,然後反過來怪罪Linux桌面發行版碎片化太嚴重……libindicator是個例子,Mir也是,Ubuntu上這種私貨API太多了列舉不過來。Ubuntu用戶要說了,U的私貨補丁都開源放在launchpad上,別的發行版或者上游你們想用可以直接去拿源代碼用啊,爲什麼怪罪我家U辛苦的勞動成果,上游不接納是上游的錯不是U的錯。問題是上游也得能接納,要考慮工作量啊。當年Apple拿KDE的瀏覽器內核KHTML的代碼去給自己的Safari用,因爲KHTML是開源的所以Apple要用也不得不開源,然後Apple的做法就是改名叫Webkit,每個release丟出一個大壓縮包,變更無數還摻雜大量只有Apple自己需要的代碼,KDE那邊拿到代碼也沒辦法用,然後就把Konqueror的開發耽擱了。直到後面Google出手也想用Webkit,做了大量工作作爲Apple和開源社區間的銜接,然後Chromium起來了之後別人纔開始用Webkit的代碼做自己的瀏覽器。再後來Google這種規模的公司也覺得Apple對Webkit的開源做法實在不好處理,又不能明着撕破臉皮,所以纔自己fork出了Blink,然後開源社區這邊的瀏覽器都一起轉到Blink去了。你說Webkit也開源了爲什麼大家都跟着Google走不跟着Apple走,因爲Apple開源的態度放在那兒。當年Apple的OSX走投無路的時候從開源社區拿了不少好東西,當然當年他們也回饋了不少,後來iOS翅膀硬了他們對開源社區就成了一腳踢開的態度。當然這是Apple的事情和U關係不大,不過U對開源的態度和Apple學得很像,U自己的開發者要簽署保密協議纔能開發開源軟件,貢獻的代碼都只是爲了在U上能工作而不管別的平臺兼容,所以不能怪上游不喜歡接納U的開源貢獻。U用戶基數大這個事情我前面對別人的回復裏提到了,用戶基數大,出問題就容易解決了麼?如果小白用戶多,那出了問題之後也只能淹沒在小白問題的人海中找不到方向。更重要的是U的做法沒法把小白用戶進化爲高級用戶,他們的文檔wiki不寫清楚(也不想寫清楚)這些軟件配置背後的細節,他們希望用戶依賴他們提供的服務而不是教會用戶自己診斷問題自己尋找答案。有的時候答案原本很明顯,卻被他們隱藏得很深。以打敗微軟爲目標?當然開源社區都是這個目標,Apple也是這個目標,但是打敗了微軟之後他們各自有各自的小算盤。Apple打敗了微軟當然是想賣他自己的設備自己的系統,開源社區打敗了微軟纔能給你自由。C社他們打敗微軟之後要做什麼我不清楚,如果能給軟件以自由我當然雙手雙腳贊成,如果他們只是想藉助開源的力量成爲下一個Apple,壯大之後再過河拆橋,那我當然不能支持他們。Redhat要說帶領開源打敗微軟的話我信他們的承諾,因爲他們的商業模式和微軟不一樣,他們的成功建立在每個公司自己運維,出問題問他們買服務買技術支持這種模式上,所以Redhat要打敗微軟之後也不會成爲下一個微軟。C社我不知道他們想要走的商業模式是什麼,目前也沒看出和傳統軟件業有什麼不同,看C社現在的做法這樣發展下去的話C社要是打敗了微軟也難免成爲下一個Apple。这种做法我是支持的。linux桌面发行版碎片化太久了。目前为止我把ubuntu当做一个开发者友好的操作系统。不仅界面做得用心,看起来舒服,而且软件生态初成(ppa),免去其它繁琐配置,让开发者集中注意力到对应的工作上,而不是像arch之类的高定制性发行版让人陷入无尽的配置系统,软件的过程…碎片化太多的問題我上面說了,是誰造成的不再複述。開源社區原本就有針對碎片化的方案(編譯時的configure,運行期的各自動態配置),是從Unix時代就繼承下來的,雖然不完美但是至少它work。開源社區做事情原本有協議有標準,雖然這套東西會拖慢開發速度會加大開發的工作量,但是這就是開發的常態,大家都這麼堅持下來的。C社過來一開始要融入社區的確也在用大家都在用的做法,作出的貢獻得到了大家的肯定。後來麼C社操之過急,覺得社區都是豬隊友,覺得自己用戶群大了翅膀硬了,就可以挾用戶以令社區,擅自提出協議擅自實現不和別家商量,還發檄文指責別人拖他們後退,這是來認真幹事的態度麼?開發者友好?見我上面說的高級用戶能否隨心所欲的問題。Unity界面是否好用看個人喜好,但是SuSE他們做的KDE也在用心,Fedora他們做的Gnome 3也在用心,從來沒聽說過Unity在別的發行版上能長期跑得舒暢不出問題的,想想爲什麼。Arch這邊有Unity的包和Unity的第三方源,替換了大量arch自己的包(因爲庫兼容性和上面說的私貨補丁的問題),能用起unity但是還是會遇到很多問題。對SuSE/Fedora的開發者們說,KDE/Gnome是他們主導的項目,但是也是社區的項目,他們參與社區開發,主導發展方向,但是也要考慮別的發行版的兼容性,考慮作爲一個開源項目它自身的跨平臺發展,都會提供渠道讓別的社區的用戶/開發者參與進來。你見過有非Ubuntu用戶給Unity提bug修bug的麼?開源社區大家奮鬥的目標是自由,給用戶和開發者自由,撇去了這一點而只提易用的話,還不如去用OSX ,那邊也用了大量開源代碼,有更好的界面設計,有更大的用戶基數(當然實際上的確有很多開發者看清了這一點然後認同Apple的做法並且不想折騰了然後就去OSX了)。若干年後Ubuntu發展得如何我不清楚,對他們來說他們走Apple的老路或許的確能比GNU的路走得好,就像BSD那邊OSX一家獨大別的都是興趣愛好。但是如果結果是世界上又多了一個Apple,對開源社區的別人而言又有何不同?關鍵問題是他們的軟件能按我的需求定製麼,困難麼,換句話說他們的軟件是否有自由。軟件生態的問題,ppa用多了之後造成的混亂不知道你有沒有遇到過。arch這邊aur裏的包我相信不比ppa的包少,雖然工具鏈簡陋點但是也足夠用。suse那邊有OBS,工具鏈比ppa強大得多,不光suse能用,別的發行版甚至arch也能用。而且因爲我上面說的私貨補丁的原因,arch這邊aur打包的東西都比ppa穩定得多。關於配置,arch的用戶也不是三天兩頭折騰配置,我的arch臺機用了3年多了,就最初裝的一週折騰了一下,後面3年都沒怎麼大折騰過。本本上的系統用了快2年,大部分配置從臺機複製過來就能用,簡單高效。能做到這一點的關鍵原因是arch的配置方式就是上游開發者提供的配置方式,只要上游開發者能兼容,arch就能兼容。如果出什麼不兼容配置的問題,上游開發者一定會出通知、寫文檔、給遷移工具,幫助用戶解決問題。U那邊私有補丁和私有工具太多,上游不會提供支持,U自身也就做個安裝嚮導,通常不會提供遷移嚮導,導致的問題就是你稍有定製的東西,一旦 dist-upgrade 肯定會有地方 break ,而且你作爲用戶,由於那些配置文件都是U的嚮導幫你生成的而不是你自己寫的,導致出問題有東西break的時候你不知道什麼地方壞了怎麼能修好,甚至要改哪些文件都不知道。所以U用戶大多都是要麼停在LTS上,要麼是dist-upgrade壞了就重裝,然後隔半年就重裝一次,你覺得不停地重裝和遇到問題的時候頭疼醫頭腳痛醫腳哪個是更靠譜的方案?你說你dist-upgrade沒遇到過問題?那你肯定沒對系統做過稍微大一點的修改定製。對嚐鮮的用戶而言這還能接受,對天天用的環境而言不能定製這是不可接受的。就像住酒店的話你不用自己打掃房間,住入之後就有熱水有電視有乾淨的牀鋪,但是這個房子不是你自己的,你搬點傢俱進來酒店經理肯定找你麻煩。要想用得舒服你至少得自己租個或者買個空房子,可能有或者沒有預設的傢俱,但是重要的區別是這房子是屬於你的,定製權在你自己手上。當然搞亂的時候你要花時間自己收拾或者請家政來收拾,但是這種住起來的舒適感不是酒店能給你的。在酒店你能住個十天半個月,在自己家你能住個少說五年十年長了說一輩子,這就是區別。我自己用 Ubuntu 從 8.04 經歷多次版本升級升到 12.04 ,期間雙系統裝裹 OpenSuSE 和Arch ,然後在 OpenSuSE 上完成了畢業設計(那時候只有suse提供了Xen補丁內核,這是我的畢業設計需要),之後本科畢業後新臺機直接裝 Arch,現在3年多了一切穩定完好。這 3 年多我經歷了 Arch 從 rc.conf 到 systemd 的轉變,經歷了 grub legacy 到 grub 2 的轉變,換過好幾個 DE 和 WM 然後現在穩定在 Awesome3.4 兩年多,系統分區從原本的 ext4 換到過 btrfs 分區然後現在組 btrfs raid1 ,我換過顯卡,換過好幾塊硬盤,期間滾掛過好幾次然後都修好了,自己作死折騰btrfs壞過也從備份中恢復好了。重要的是這個系統一直活着而且活得很好, pacman.log裏的裝機歷史能一直追溯到3年前裝的第一個包,我知道這裏面只有我需要的包,只有我做過的配置,發生任何問題我都知道是系統的哪裏的問題。這是 Arch給我的安心感,是Ubuntu不能給我的。反觀我用Ubuntu的那段時間,每次 dist-upgrade 都要麼立刻掛掉要麼用一段時間掛掉,要麼就是升級的方案實在太將就然後換新的重裝。都說 debian穩定ubuntu穩定,而那時的我沒有任何穩定的感覺,那時的我害怕每一個小包的升級,因爲我不知道升級了一個包之後會對別的包造成什麼不可預知的後果。服務器系統那種有管理員管理的計算機集羣需要的穩定性,和桌面用戶需要的穩定性,在我看來是不同的概念。我不怕一個升級之後東西壞掉然後需要我花兩個小時找方案把它修好,但是我怕爲了某個新版本的庫而不得不升級的時候,整個系統都變得面目全非導致我不得不花兩個小時重裝系統,然後這個全新的系統我不再認識了。研究室的一臺被我維護的老服務器一直用着 Ubuntu 10.04 Server LTS,別人裝好之後讓我接手維護的,而我很快就要博士畢業讓別人接手維護了。我問過教授能不能用別的系統,教授說考慮到培訓的成本還是接着用 Ubuntu Server 吧。然後我手把手教低年級的學生把這個 Ubuntu 10.04 LTS 的系統遷移到一臺新機器上的 Ubuntu 14.04 LTS,這個遷移工作到現在已經進行了一個半月了。跨越 4 年的版本升級積攢了太多的不兼容的配置變更,而我需要讓這臺機器提供所有那臺老機器提供的服務。沒有一個配置文件是能夠複製過去直接替換用的,而 Ubuntu 的安裝嚮導提供的配置文件在各處阻礙我的遷移。用了一個半月遷移總算能基本完成了,而整個系統已經支離破碎各處留着隱患。比如遇到的一個問題是 sudo 的時候必定會報錯說 talloc stackframe memory leakage,去ubuntu的網站論壇搜到了無數類似的問題,以及這邊這個 bug
所有遇到這個問題的人提供的解決方案都是刪掉 samba 的 pam 用戶隱射模塊,而這個解決方案對我們而言是不可接受的,因爲我們需要用 samba 和 NIS 之間的用戶隱射功能。所有人在提供解決方案的時候都說刪掉 libxxx 能解決這個問題,但是避而不談這個 libxxx 提供了什麼功能,爲什麼Ubuntu默認會裝上它,以及爲什麼刪掉它就算是解決問題。這個問題的實際解決方法在 samba 上游早就提供了解答:然而Ubuntu這邊到現在(14.04.2)仍然沒對這個問題發佈過補丁。我不知道Ubuntu是出於何種考慮拖着這個問題不解決,作爲小白的Ubuntu用戶我也只能等Ubuntu的人來解決這個問題,因爲NIS和pam和samba之間的複雜關聯,我害怕我擅自編譯安裝新版本samba的話會造成更可怕的問題。但是我可以肯定的是,同樣的問題在arch上,去年10月的samba的升級肯定已經解決,影響到的用戶肯定不會太多範圍不會太廣。對於我arch上跑着的samba服務,我知道它每個配置都在什麼位置,我知道samba的後臺不會影響到smbclient的前端,我可以可靠地自己拿源代碼編譯安裝 samba 然後替換系統已有的 samba 服務並且不影響任何別的地方。但是在 Ubuntu 上,我就沒有辦法作出這種保證,因爲安裝的時候那些配置都是 ubuntu 的安裝嚮導給我生成的而不是我自己寫的。我不知道 Ubuntu 龐大的用戶基數在這類問題上,除了傳播錯誤的治標不治本的解決方案之外,還能有什麼優勢。考慮到我們只是從 10.04 昇 14.04 ,upstart依舊還是init,要是以後昇到 16.04 或者 18.04 要換到 systemd,整個系統不知道會出多少疑難雜症。相比之下arch中當年從 sysvinit 遷移到 systemd 在我的系統上歷時一年多,從2012年9月我手動替換了 init (之前systemd就作爲依賴裝進來了)到2013年12月因爲沒有任何引導腳本再依賴 sysvinit 所以我刪掉了 sysvinit-tools,期間整個過度平穩,我作爲用戶做的事情並不太多,就是上游打包者在提供了一個新的systemd服務的時候,我把它從 rc.conf 裏刪掉然後用systemctl啓用,這一切有詳盡的文檔指導。目前 Arch 正在經歷從 KDE4 到 KDE5 的遷移,一切也都平穩有序地進行中。
滚挂过魔改版 Linux Mint 的路过
大约三年前开始用Linux,第一个发行版就是ArchLinux。昨天刚换成了Ubuntu,主要是因为“世界这么大,我想去看看”……ArchLinux优点: - 自由选择因为系统完全是自己装的,所以很多东西都可以自由选择。例如用Gnome还是KDE还是Openbox或者Awesome等等,反正你自己装。而且这样系统可以精简很多,例如我只需要xf86-video-intel,其他的就不用装了,Ubuntu的话内建就有十来个xf86-video-*。又例如装KDE,我可以选择只装基本组件(窗口管理器等),或者包含其他games之类的套件组。 - Pacman很好用个人觉得Pacman完爆APT和YUM,而且非常符合KISS的哲学。搜索很快(因为没有先同步),而且结果很准,APT和YUM经常搜出一大堆看起来完全无关的东西,要慢慢找……ArchLinux里无论是搜远端仓库还是本地已安装仓库,远端下载安装还是安装已手动下载到本地的包,都是用同一个pacman指令。Ubuntu有时用apt(以前还分apt-get和apt-cache),有时用dpkg,有时甚至会叫你用aptitude(预设好像没装),一点都不KISS。 - 稳定和一般印象不同,ArchLinux大体上是挺稳定的,可以一直用。而且它不怕半年大更新一次然后死掉。当然,前提是你要三不五时“滚”一下,以及留意ArchLinux News。不过偶尔会有小bug,下面会提到。 - 软件丰富本身仓库就很大,加上AUR无所不包,和yaourt一起用后就和原本的仓库差不多。应该是因为包的格式简单,让人有动力去打包吧? - 软件更新很紧贴上游Firefox出新版后一般一星期内有更新。kernel也是更新得飞快,当然这未必是优点……缺点: - 折腾从一开始安装就要折腾了……Live CD没有图形界面,也没有安装程序,要手动连接网络、磁盘分区、挂载、装基本系统(有辅助脚本)、chroot进新系统进行各种设定、安装启动引导程序、重启、继续安装和设定各种套件(图形界面、声效、桌面环境),到这里才追上别家无脑下一步的安装程序刚装完的样子……当然,比起Gentoo是简单很多了……平常使用倒是不怎么折腾,所以不是很大的缺点。 - 不能长期不更新因为偶尔会有大改(例如把/bin合并进/usr/bin之类,会在ArchLinux News里说),半年“滚”一次的话,比一般发行版容易死掉。但你要是想半年才更新一次的话,还是找非滚动的发行版吧,别“滚”死后赖在滚动更新头上…… - 测试不足因为太紧贴上游,偶尔会有小bug,我遇过几次。一次是glibc不知道怎么回事,随便一个程序stack overflow,整个glibc就会挂掉,整个系统陷入诡异的状态……但这个bug在一个月内消失了。另一次是SDDM更新后预设光标不在密码栏上,而且用键控跳不过去,必须用鼠标去点,感觉用ArchLinux的逼格都没了……这个貌似还没修好……还有grml-zsh-config,更新后directory stack不好使了。 - 软件太新有次我在作业里用了C++11的regex,在我的gcc 4.9上没问题,结果交出去后TA说在他较旧的gcc上有runtime error……虽说这是gcc坑爹,但也变相让使用者要时刻注意工具版本。所以开发的话,我觉得最好和伺服器用同样的环境。还有就是有些软件不向后兼容,例如Unison,在ArchLinux上更新到2.4x,但在Windows上只有2.32,两者不兼容,最终要降级,然后把Unison加到ignore list。这方面Ubuntu做得不错,Unison同时有2.32和2.40的套件,还有个unison-all直接两个一起装完。大致上是这些,想到再补。
gentoo,每周一更
用gentoo. 工具可以多个版本共存,随便切换,用得也是爽到飞起.
更新强迫症。用了5年Arch,几乎隔天必更新。最烦因为假期,期间留在学校的电脑无法更新,回来后必须参考公告、仔细的更新大量软件。各种软件安装太容易,同时安装着大量的软件,有些稳定性较差。最近2年转到Gentoo -& Funtoo。基本一周、两周更1次比较妥当,安装并不麻烦,编译成本没有想象的那么大,午休的时间基本搞定。偶尔会碰到恶心的更新问题,查查公告、看看Bug List、实在不行自己定位都能解决问题。软件基本较稳定,安装成本毕竟比Arch大,无法像Arch中在想尝试某软件、30s后就安装完毕,因此挑选软件也谨慎起来。从Arch到Gentoo,更新强迫症得到初步缓解。
如果岗位是QA的话,那不就是跟上班一样嘛
Arch用户,使用一两年了,从Kubuntu转来的。目前开发、日常都使用Arch。1. 总的来说还是很稳定的,虽然也出现过几次问题,但上游很快都会解决;2. 最爱包管理,版本最新,aur包罗万象,不用再像Ubuntu那样装个软件要么手动下载deb文件,要么添加软件源了,前者不便于更新,后者导致每次apt-get update都很慢;3. 虽然很多软件官方(比如搜狗输入法)只打包deb、rpm,但基本都有人移植到aur了,反倒比Ubuntu、Fedora系安装还方便;4. 文档非常丰富,常用软件都有文档指导安装、配置、常见问题;5. 英文社区很活跃,有问题可以在官方论坛提问。唯一的不足是安装比较麻烦,对初学者不够友好。不过麻烦两小时,省事几个月、几年,也是值得的。
2010年在机房用过半年的 Archlinux.当时的感受:中文字体没 Ubuntu 好看,而且我也懒得去调整它。并不是装几个字体打开用就完事的。软件相比 Ubuntu 和 Debian Stable 来说还是新的。我自己从来没遇到过更新杀。弃坑不久就有朋友遇到 Gnome2 强行升级 Gnome3 的问题,上面很多人都没提到,大概是不用 Gnome.后来不用机房,就没用过 Archlinux 了,主要原因是我的笔记本上用不了 Archlinux x86_64 默认内核——无法启动 LiveCD, 无法安装。32 位内核可以用,不过内存比较大,我倾向于用 x64 内核而不是 x86 加 pae. 目前笔记本上的 Arch 是在 Ubuntu 下 Bootstrap 安装的,并且拷贝了 Ubuntu 内核及模块过去。用起来挺好的,不过 Ubuntu 那边用了几年了该装的都装了,再加上一半的学习时间在用 Mac OSX 和 Windows,我也就懒得再折腾。纠正一下常见不太正确的认识:1. 滚动更新不代表最新。想尝鲜请用 Fedora Rawhide.2. 用 Ubuntu 不等于半年重装或者升级一次。用 Debian 不等于两年要重装或者升级一次。用 Debian/Ubuntu 不代表不能 Bootstrap.... 用 Debian 不代表不能滚动升级。你们啊,naive.
提到滚动更新,大家脑子里总是冒出arch跟gentoo,其实Debian也能滚动更新,Debian testing我当桌面用两年多了,没滚挂过,间隔半年滚都没出问题。还有个Debian unstable没试,据说软件挺新的但是不如testing稳定,又穷又懒的我就没下定决心折腾。体验方面还好吧,省心省力,哪天心情好了滚一下。内核也来新的了就重启实验一下,没问题再卸载旧内核。偶尔冒出点奇怪的事情,比如chrome的flash插件失效啦、Gnome3的任务栏透明效果木有啦、Gnome Terminal不能透明啦、Conky被壁纸盖住啦、启动方式突然变成systemd啦等等等等,没啥大不了的,发现了上网看看咋回事就行了。估计电脑坏掉之前是不会再次装系统了,顶多玩玩Xfce、KDE、Fvwm什么的。
我是日常用 Arch 的用户。( 统计命令来自 @felixonmars )So, ~, as I pray$echo $(head -n1 /var/log/pacman.log | cut -d " " -f 1,2) 以来一共滚了 $(grep -c "full system upgrade" /var/log/pacman.log) 次[ 12:56] 以来一共滚了 559 次装一次系统能用这么长时间的感觉蛮奇迹的(目前的最长记录)。期间系统“挂”过一次,虽然不是滚挂的,但和 pacman 也有不小关系,那次是在 KDM 登录之后死活不能启动 KDE,这对日常离不了图形界面的我这种菜鸟是很大的打击,我寻找了一整天方法,心里焦急地想这次是不是完蛋了,然后死马当作活马医 df -h 了一下,看到 /var 那个分区神奇的 100%……然后默默清掉 pacman 的缓存,重启,世界和平了,有种从世界末日回来的成就感。软件跟进很快,上游有什么更新不出一两周就能到自己的电脑里面,最快的是手上日更的火狐(开发者版)……体验过刚升级的软件带来各种改进和新功能的激动后就更加喜欢让自己贴近上游的最新版了,当然是说稳定版。关于稳定,首先滚系统的体验是很平稳的,偶尔需要手动干预的时候 Arch News 也会给引导,没有遇到过比前面提到的那次危机更可怕的事情,更没有遇到过当年升 Ubuntu 12.04 那样的噩梦体验:原本萌萌的 Gnome 突然被 Unity 杀进来替代了默认桌面的位子,这是我绝对不能忍受的事情,竟然升个系统强行改了我的个性化配置,我最初喜欢上 Linux 有个原因就是它能给我这是我的系统的实感,而不是隔壁的或者是老王的系统或者是网吧的系统。另外是很多软件都炸了,各种错误弹窗把初识 Linux 不久的我给吓坏了,而且错误弹窗的内容基本只告诉我出事了,我想深入了解一下问题的原因都很困难,那次冲击让我对 Ubuntu 有了绝对不是我的菜的认定,修好系统的希望太飘渺,无奈之下我卸掉了系统装了 Chakra。当然这个平稳也不是绝对的,时不时滚系统之后会带来一些不会要你命的小问题,比如:KDE4 -& 5 的过渡期时候,一次 KDE Applications 部分软件从 kf4 升到 kf5 之后配色变得很粗犷 ,我直接把 kde4 桌面升级到 kde5 的桌面解决了偶尔 pacman 出现 PGP 错误无法更新软件包数据,更新一下 key 就好了。有次滚了之后,Krita 在双屏时候一定会启动就崩溃,然后在
前辈的指引下发现是多屏的问题,采用单屏状态启动 Krita 再切双屏的办法暂时绕过了问题,然而之后我连续在 kscreen 应用各种配置(设置显示器位置的旋转)造成 kwin 开始连环崩溃了(崩溃-重启循环,重启大法无解,真是好事成双 (?_`)),当时很是抓狂,不过通过 KDE 提供的 crash report 加上 fc faseer 和数用户的推理与指引下问题定位到了 Intel 驱动的硬件加速配置上,我先是关掉了 compositor 让 kwin 停用一切特技不再崩了,根据 wiki() 上的描述改成更稳定的 uxa 之后,重启进桌面,重新打开 compositor,全身特技的 kwin 回来了,没有崩溃,而那个 Krita 崩溃的问题,在那之后几天滚了一次系统之后就没有了。有人说折腾,是的,装系统的时候和遇到上面提到的那些问题的时候是挺折腾的,但那和日常的折腾是两个概念,日常我一整天干的事情是进系统,打开我的火狐浏览各种网站,开 Atom 写我的代码,开我的 Yakuake 在终端里面运行日常的 gulp,日常的 git 连击,日常的 npm install...心情好了 pacman -Syu 一下,开 Dolphin 管理电脑上的文件,开 KTorrent 搬运资源,开 Clementine 欣赏音乐,这才是常态(参考我的另一回答:)。另一方面,我觉得这些折腾挺值的,让我对追踪问题有了更多的经验,见过的问题分分钟就能解决,新的问题知道用 reboot 大法,以及通过终端启动出了问题的图形界面程序让它输出详细的错误信息帮助诊断原因,而不是看到问题就只想到忍痛忍痛忍痛,删删删,祈祷祈祷祈祷,重装重装重装;给自己(以及各种别人)装过很多次系统的经验表示装新系统这种事情比起前面那种解决问题的付出需要的代价太大太大了,而且并不能切实消灭问题,真的折腾不起。Arch 下经历遇到问题 -- 解决问题循环的感受可以用下图很好的比喻 _(:з」∠)_(图自:)开发方面,我平时只写写网页,工具上就用用 Atom 和 Node.js,剩下的都给 npm 包管了,这俩程序在 Arch 上都是非常贴上游最新稳定版本的,现在是 ,手上前者 1.2.3 后者 5.1.0,前者是一个小更新就有非常多的改进,后者版本差异体会不多,代码上交给 Babel 了,API 上能让我好好照着官方最新文档使用我就满足了 (?_`)。
用arch就是强迫症。滚挂过一次,只是gui所以问题不大最慌的一次是/home下所有中文名的文档都不能读了,差点以为地球要爆炸了。后来发现是新kernel对f2fs的问题,用棒子的东西果然不靠谱。搞笑的是,在新kernel下mkfs的f2fs没问题,用新kernel读以前的kernel mkfs的有问题。装上linux-lts了事至于罗技无线鼠标没反应什么的都算是小毛病了
一套好的系统应该具备平滑升级的能力,就像编译器能够自己编译自己,不断向前演进。如果某个系统不能平滑升级,要么就是设计者考虑不周,要么就是没有能力实现。我是 FreeBSD 桌面用户,平时用 svn 追 STABLE 分支,经常 svn up。只要看到 svn log 中有关
ZFS、Graphics、kern、LLVM/Clang、libc
的大变动,并且几天之内没有关于这一块的新的提交,就会编译更新整个系统,一般基系统耗时一个半小时,内核五分钟(CPU
P8800)。由于换过硬盘,可能没有大家「滚」得久:# zpool history | head -n2
History for 'hdisk':
.07:55:54 zpool create -o altroot=/mnt/ -O atime=off -O compression=on -f hdisk ada0p2.nop
期间 FreeBSD 经历了7个 Release: 9.0 =& 9.1 =& 9.2 =& 9.3 =& 10.0 =& 10.1 =& 10.2
ZFS 经历了4次升级:# zpool history | grep upg
.15:25:59 zpool upgrade -a
.10:47:16 zpool upgrade -a
.19:03:17 zpool upgrade -a
.09:57:27 zpool upgrade -a
现在的版本是:FreeBSD 10.2-STABLE #2 r291061: Thu Nov 19 19:56:46 CST 2015
由于 STABLE 分支较为稳定,对日常使用几乎没影响。倒是每次更新不知不觉就用上新特性,等到出 Release 时,看发行公告一点新鲜感都没有。以上是系统核心组件(内核+基本命令+工具链+文件系统),上层应用当然也是滚动更新的,主要看新版的 Ports 是不是我经常在用的,如果是 Vim、Tmux、R、Xorg、Firefox,armadillo 这些,一定会及时更新,否则拖上很久也不更。总体来说,除了「与时俱进」并没有什么特别的体验,毕竟已经习以为常了,主要的精力还是在日常使用上面,我的日常主要是写点小程序、读些源代码、做点科学计算、写写论文、看看美剧……倘若题主觉得这类滚动更新的系统不适合用来做开发,那么多半是以下原因:装在虚拟机里了电脑是双系统有别的电脑可用所用的系统不是合格的「滚动更新」的操作系统连续使用未超过一年,还在熟悉阶段最后附上几个更新 FreeBSD 用的 alias:alias base-sync
'svn update /usr/src'
alias base-log
'svn log -v /usr/src | less'
alias base-notice
'$PAGER /usr/src/UPDATING'
alias make-world
'echo "`date "+%H:%M:%S"` making world..." \
make -C /usr/src -j3 buildworld & /tmp/make-world.log \
echo "`date "+%H:%M:%S"` build completed"'
alias make-kernel 'echo "`date "+%H:%M:%S"` making kernel..." \
make -C /usr/src -j3 kernel KERNCONF=ThinkPad & /tmp/make-kernel.log \
echo "`date "+%H:%M:%S"` build completed"'
alias install-world 'mergemaster -spF && make -C /usr/src installworld && mergemaster -sF'
alias install-bootcode
'gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0'
alias make-rm-old 'make -C /usr/src -DBATCH_DELETE_OLD_FILES delete-old delete-old-libs'
alias make-rm-obj 'chflags -R noschg /usr/obj/* && rm -rf /usr/obj/*'
按照上述 alias,完整的编译更新基系统+内核的步骤为:base-syncmake-worldinstall-worldmake-kernelinstall-bootcodemake-rm-old是不是很简单~
我是5+年Gentoo用户。简要的说,体验有以下几点。不再关心发行版本身的版本,只关心portage系统以及其他与应用直接相关的软件版本。从这个角度来说,Gentoo仿佛从前台淡出到了虚化的背景。自从用上Gentoo,就没有再重新装过系统了。时间最长的一台电脑从2010年到现在,连续平稳运行,换过硬盘、从mdraid变到lvm,做过bcache,但从来没有重新安装过系统。这就是可以一切从头编译、可以迭代bootstrap的优势。这是我的主力开发机之一,是折腾比较狠的,但得益于我自己的良好习惯以及sandbox,确实没出过解决不了的问题。而我们实验室的服务器上部分也运行Gentoo,但由于服务器平时很少追新,秉持的是够用就好的原则,所以Gentoo稳定运行并没什么说服力。呵呵,不过有一台服务器是Ubuntu Server LTS,运行了几年之后也必须要对发行版升级了,否则大多数软件已经无法更新。但升级又会导致大量的用户自行安装的软件出现动态链接库的问题,所以这台服务器的处境目前比较尴尬。发行版定制的东西消失了,或者大幅减少到不可察觉的地步了。这对强迫症来说是好事。不管是Ubuntu的非洲大地元素还是Fedora的蓝色水系元素还是openSUSE的绿色青蛙元素,其实都与用户的应用没什么关系。多了这一重可定制项,对某些用户来说是多了选择强迫症的机会。但使用基于源代码的Gentoo,因为包管理系统开发者友好,而一定程度上使得发行版的维护开发更为松散,也客观上减少了上游开发者和最终用户之间的环节。一方面,这使用户的注意力更为集中;更重要的,使我从Linux用户、伸手党,变成具体某些软件的用户以及贡献者。不再关心Linux发行版的问题和话题。十几年前用红帽时没的选,后来用fedora再到debian以及debian的子孙后代时经常看distro watch,仿佛发行版review已经成了水木十大一样的日常。但现在因为如上所述,发行版已经淡出用户体验了,所以自然不必关心,内核就是内核,软件就是软件,偶尔到Gentoo用户论坛也只是讨论某个软件的问题或者portage的问题。可以很方便的生成自己定制的发行版。用/var/lib/portage/world描述内容,用/etc/portage/*描述需求,二进制可执行的东西都bootstrap出来,太省心了。仿照着ebuild的原理,自己开发包管理器,用于打包、管理某些更为小众的软件。从此以后,到别人电脑上部署某些专业软件环境,再也不用帮对方或者教对方一步一步手动安装,而是用简化的ebuild+portage系统自行计算依赖关系,递归式的自动下载、编译、安装其它软件。这节省了很多时间(虽然开发这个系统挺花时间的),关键是big很高啊。然而,最后患上了编译强迫症。每次有gcc更新,都要emerge -vaej system/world几遍,仿佛真的能获得性能提升一样……其实都是错觉。前6条好习惯节省下的时间和精力,都扔到了这第7条的坑里。
个人比较喜欢追新。常年用debian sid,偶尔更新过后会出现一些问题,但是基本上都能自己解决。如果没有这个能力还是不要用了。
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 linux系统使用 的文章

 

随机推荐