快轉到主要內容

用Gentoo二個月之後,默默換回了Arch Linux

人文藝術 自由軟體議題 Distro-Hopping Gentoo Arch Linux
🗓️ 民國111年 壬寅年
✍ 切換正體/簡體字
目錄

最終還是有點慚愧、狼狽的換回了Arch Linux。同樣是滾動發行版,Gentoo跟Arch的難度真的差距過大了,看來我還沒準備好。

要去哪裡找能高度自定義,軟體版本最新,又能穩固使用的桌面Linux發行版呢。這三個條件絕不可能一次滿足。

為尋找自定義Linux系統的極致,2022年7月從openSUSE Tumbleweed切換到Arch Linux,然後再切換到Gentoo Linux。

在此期間,初步理解了Gentoo和LFS(用dual boot裝的)提供的底層系統編譯原理,知道如何從OpenRC遷移到Systemd,還有部份軟體要自己手動裝的痛苦。系統核心由於是偷吃步使用官方預先編譯的二進位檔(以Fedora為基礎)所以這方面沒煩惱過。

Gentoo玩War Thunder這種大型遊戲是沒問題的,Steam (Flatpak) + Proton都處理好了。

Plasma Overdose主題

然而,在使用Gentoo Linux二個月嘗過優缺點後,便決定換回Arch Linux。過去的習慣是一個禮拜給Gentoo升級一次。這次因為Gentoo emerge時一次出現50個以上KDE套件slot conflict,心想我不能再花這些時間在底層debug上了,因此拿Arch Linux的USB出來重裝系統。

這個離開理由沒有以前Ubuntu那麼瞎吧,以前我是嫌Ubuntu/Debian太無聊才離開的,openSUSE/Fedora則是給人太多預裝的東西了我不喜歡,雖然沒有Windows 11廣告機器那樣誇張,專有軟體的重量級大集合,這種怪物只能被關在虛擬機裡面。

Windows 11新裝的系統就有這麼多廣告APP

用Tumbleweed、Arch、Gentoo是把自身推入地獄?孰或是天堂?反正用了接近上游的滾動發行版就不想再用穩定發表的發行版了。

因Distro-hopping的習性使然,重要資料都放在另個硬碟和雲端 (軟體自由協會的Nextcloud + 私人MEGA),所以準備程序沒有太久,將Windows和MacOS的虛擬機備份好之後就重灌了。

1. 自定義的極致,穩定度的考驗
#

想來想去,要回應文首的構想,Arch是目前最優解,並且是純Arch,而非Arch-based的Manjaro、EndeavourOS、Garuda、Artix那種加料發行版。

Gentoo和LFS就是符合自定義的極致,軟體也很新,幾乎從0開始裝系統,還要設定編譯套件的選項。等套件編譯可以忍,但是要手動處理套件衝突就很嘔了。PC還可以慢慢處理,但如果裝在重視機動性的筆電上…筆電短暫嘗試過Gentoo,後來也是換回Arch了,還沒遇到升級衝突問題,就快被編譯拖延的時長搞死了。Gentoo或許足夠穩,不過喜歡追逐更新的朋友就會很痛苦。

系統出問題除錯時,不只鬍子,頭髮都快掉光了

或許Gentoo的USE可以把一些系統功能拒絕編譯進去,但是感覺就像在寫程式般,要考慮依賴關係,升級還要顧慮設定檔會不會被覆蓋。Arch就跟一般Linux發行版一樣,直接升級就好了。儘管過去有遇到升級時檔案衝突的問題,也沒Gentoo那樣誇張。相較於Gentoo要設USE再等編譯,Arch在使用台灣國內的鏡像的時候,一個指令很快就安裝好了。

至於Arch穩定度如何保障,無定論。Wayland可能下次更新就被Nvidia的驅動gank,GRUB還可能莫名不見(機率很小),或是Fcitx又不能在特定程式打中文了。諸如此類,不過等個幾天pacman -Syu,花十分鐘下載更新問題也許就解決了,Gentoo要先等二小時編譯再看看結果。

2. 體驗Arch Linux自定義系統的快感
#

重新裝Arch跟當初裝Arch的筆記過程沒有差多少,PC看 這篇,筆電看 這篇。那些文章我也有一直修正低級錯誤以免某人真的照做後卻失敗。

有人跟我批評過Linux是拼裝車。是,它就是拼裝車,而像Systemd這種試圖大一統的還會被人靠北說管太寬,桌面環境也是萬年戰來戰去的議題。管他的,目前我除了使用自由開源的軟體進行工作這點不能退讓以外,前沿新技術都應該試試看。

這其中當然就關乎要怎樣安裝你的系統了,主要還是跟大眾潮流走,並適時做小調整。

Gentoo是用USE來界定軟體功能,Arch則是將套件拆細,下載時能選擇要哪些套件組合,避免癰腫。例如QEMU有最小版本,也有全部都裝的版本。Fcitx5輸入法也可以選擇只裝新酷音,而不會裝到拼音輸入。

這次重裝桌面環境的時候,我還是選擇KDE,Gentoo是用USE來裁剪要編譯的KDE功能,而Arch提供plasma-metaplasma-desktop二個大套件。有點經驗後,我是不喜歡裝plasma_meta全家桶的,應用程式太雜,因此選擇plasma-desktop。後果就是要自己補洞。

例如:KDE怎會連WEBP和AVIF都不支援?

因為我裝的是plasma_desktop的最小套件,圖像支援(qt5-imageformats, kimageformats)的套件要自己抓。常用的還有藍芽(bluedevil)、網路管理員(plasma-nm)、Pipewire音效面板(plasma-pa)、電源管理(power-profiles-daemon)等等,按照自己的需求組合出KDE桌面,不用事後再清理全家桶。

如果是第一次裝Arch的人,還是乖乖吃全家桶,人們很難第一次就知道自己要什麼,以前我連Ubuntu用的是GNOME都不曉得。

順帶一提,為了新鮮感,也為了方便觸控板+體驗Wayland,筆電的Arch桌面環境是裝GNOME全家桶,雖然GNOME的界面自定義程度非常差。

3. 繼續全面Flatpak化
#

Flatpak是為了無視任何Linux發行版差異所承襲下來的安裝手段,其次是AppImage + AppImage Launcher。Gentoo深刻體會到這點,對某些不常見的軟體來說,Gentoo有時連Overlay都沒有,要依賴AppImage和靜態連結執行檔,最慘情況下要開docker和虛擬機來跑。

除了檔案管理員(Dolphin)、文字編輯器(Kate)、圖片檢視器(Gwenview)、媒體播放器(VLC)等需要快速回應的系統程式,剩下的桌面軟體盡量採用Flatpak,包含Firefox、VS Code OSS、Android Studio、Steam、LibreOffice、Kdenlive、GIMP。

Flatpak的權限設計能提高安全和隱私性,有點像Android APP那樣,唯一的缺點是很肥。

另外,使用Snap常被Linux社群視為政治不正確,不過我覺得沒有什麼不好,只是有動力裝的軟體只有靜態網站生成器Hugo,用於補足Flatpak只有桌面程式的不足。

最後想讓軟體更新自動些。GNOME下的Flatapk會自動排程更新,所以也裝了Discover當KDE的更新前端,抑止想每天打pacman -Syu的想法。KDE在設定好更新規則後,讓Arch定時像Google Play的APP那樣默默更新。

4. 美化一下Arch Linux
#

實用和美觀是首要目標,不為炫砲和個性化而強行作為。

Arch Linux跟Gentoo Linux一樣,開機會輸出GRUB和Systemd的訊息,參考 Arch Wiki將核心訊息關閉,然後再裝個有Arch logo的簡約 Plymouth做開機動畫。

讀了一些觀點後,我認為像r/unixporn看板的人那樣細部下去美化桌面只會使強迫症更嚴重,例如曾把KDE組件全拔掉只用Latte Dock,結果用的很不順手。

不論KDE還是GNOME桌面,桌面擺設能有生產力比較重要。所以對桌面的美化就是以下原則:

  • 「實用」不放擺拍一次後就不會想看到的桌布
  • 「低調」不搞RGB燈效的花花綠綠線條
  • 「只用桌面本身有的組件」不依賴第三方套件
  • 「桌面不放任何圖示」GNOME傳染到KDE的習慣

所以,KDE只有把狀態欄調位置,使用內建的秋天桌布。用Gentoo的時候確立了這個風格:Breeze的視窗裝飾太輕浮,調整為Oxygen的擬物風格。

GNOME沒什麼好說的,沿用Adwaita主題,桌面佈局就順著GNOME的操作邏輯,沒有把Dash做成固定Dock。不過GNOME的APP分類太難用,所以會在GNOME Tweaks裡面開啟左上角的APP分類啟動器,桌布使用OpenSUSE的可愛蜥蜴(NTR?更像是繼承Tumbleweed精神)。

5. 在那之後
#

看看這次可以撐多久,又會開始distro-hopping。

雖然FreeBSD不是Linux,但一直是考慮當作長久桌面系統的選項。之前玩過,發現它真的還是當伺服器就好,我只跟他們官網買了一件30美元的T恤+貼紙當作支持。

Linux還是比較大人氣,方便跟人分享某某軟體如何設定的教學,證明Linux不只是默默做事、僅供開發人員接觸的機器,而是能當日常作業系統。而了解、改善這一切的方法就是全身投入到系統,從底層到表面去實踐。

相關文章

學習Linux的歷史過程與心得
人文藝術 自由軟體議題 Distro-Hopping Ubuntu postmarketOS Termux
隨意使用線上轉檔服務,有沒有考慮過隱私問題?
人文藝術 自由軟體議題
用Wine在Linux上跑Windows軟體本身就是很奇怪的事情
人文藝術 自由軟體議題 Wine

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。