快轉到主要內容

紀錄使用Linux系統二年後的心得

分類   人文藝術 自由軟體議題
標籤   Distro-Hopping Linux Free Software
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

「果てまで 気の遠くなる様な旅をしよう」

直到盡頭,讓我們開始那漫長的旅程吧。

來源:https://www.pixiv.net/artworks/65891187
來源:https://www.pixiv.net/artworks/65891187

學習使用Linux系統,不再返回Windows,終於邁入了第二年。學習Linux第一年與之前的紀錄看 這篇 這篇

這一年,是完全連續使用Linux系統的一年,沒有在實體機使用過其他系統。

這一年的旅程路徑:

Ubuntu 22.04 → openSUSE Tumbleweed → FreeBSD 13 → Arch Linux → Gentoo → Linux from Scratch → Arch Linux → Debian → Arch Linux

每個發行版都有不同的色彩,不同的文化,就宛如《奇諾之旅》OP所唱,遊歷各國,真是美麗的世界

1. 做好思想準備
#

Linux is free if your time has no value. 在文組生最閒暇的大四研究Linux是再好不過了。這次,我要將其真正的作為主力桌面系統,用於生活的各個方面。

思想帶來動力,這是不證自明的道理。此一時期構建理論居多,接觸系統的實作部份為下一階段「浪流連」才開始。

2022年3月,離開Ubuntu後,選擇安裝滾動更新,又有自動化測試以確保更新穩定性的openSUSE Tumbleweed,深入接觸自由軟體的思想體系。

5月曾有一個月的時間,每天就是看「自由軟體基金會」、「資訊人權貴」、「軟體自由保護組織」這類網站的文章,研讀GNU GPL的授權,以及論證使用自由軟體的理由。理查·馬修·史托曼的《自由軟體,自由社會》勸你 多讀

6月,本部落格成立,開始撰寫討論自由軟體的文章,還有各種Linux軟體的使用教學。

看了歷史紀錄片《作業系統革命》,所以有了這篇文章: 對大學端的自由軟體之淺見

研讀自由軟體理念是宛若宗教一般沈浸的體驗,催生出了這種暴論文章: 為什麼不玩《Minecraft》遊戲?別忘記它缺點就是專有軟體。更糟糕的負面後果:我曾經變成「自由軟體警察」,處處攻擊那些使用專有軟體的混帳。曾經跟人吵說為什麼翻譯文本要用Crowdin不用Weblate,最後被砲轟我搞錯重點。畢竟那些譯者是真的有現實的專業工作,而我沒有,只會出一張嘴。幾個月內又爆發幾次類似衝突,使得我現在收斂許多,學會愛與包容,比較少跟人吵純意識型態的東西了。

同時,為滿足當時仍未熄滅的玩遊戲需求,到Arch Wiki和Libregame Wiki調查有哪些自由開源遊戲可以玩。最後的成果便是: 不玩遊戲的理由…論從熱門遊戲轉向開源遊戲,以及 迷上Minetest

研究開源遊戲的時候,深入了解創用CC是怎麼一回事,了解創用CC如何填補GPL無法處理的藝術素材: 動漫作品可以「開源」嗎?談創用CC的實例 開源的法國女巫漫畫:小辣椒與蘿蔔頭- 看板C_Chat - 批踢踢實業坊

此段時日的理論提供了一個相對清楚的體系,讓我知道自由軟體的世界絕非那樣簡單與單調。

對自由軟體理念的追求,延伸出了自架伺服器數位隱私權去Google化去中心化社群媒體反DRM真Linux手機PinePhone完全自由開源的硬體,如支援Libreboot的主機板等議題。這些議題到現在仍是我關注的主題。尤其「手機」這個每天最重要的工具,我認為Linux與自由軟體理念也必須在這裡生根發芽。

即使,後面的理念有些動搖,卻也不忘記這些打下的理論基礎。

2. 在發行版之間浪流連的歲月
#

這個風風雨雨的社會…浪流連在這裡等同"Distro-hopping"的意思。

* 我有二部電腦,一部桌機一部筆電,後者主要是帶出去上課使用的。因為桌機需要常常負責重要運算的緣故,Distro-hopping的頻率遠低於筆電。以下若無特別說明,指的皆是桌機。

7月,接觸到同為自由軟體,但理念稍有不同的FreeBSD。BSD授權條款允許商業閉源利用,並不強迫原始碼必須開源回饋出來。

我知道FreeBSD不是Linux,但還是裝在筆電玩玩。

一邊用FreeBSD,一邊給參與線上輔導計畫的小朋友遠距教學,從來沒有當掉過。

其實我是偷懶用GhostBSD裝的: 在微星筆電安裝GhostBSD (FreeBSD)教學& 使用感想。相機驅動什麼都自動裝好。XFCE4桌面環境搭配瀏覽器,還有Fcitx5,要遠距教學是沒問題的,還順便研究了連外國人都不太知道的FreeBSD裝Steam玩遊戲。

其實啦,單純遠距教學就算用ChromeOS也能上。

FreeBSD安然度過了暑假的一個月,在那之後我就把它換掉了。到現在我還是認為FreeBSD的理念差Linux一截。即使BSD系統的碎片化程度較低,沒有Linux發行版的巨大差異,可是對自由的堅持不夠徹底,就會變成讓人允取允求的奶牛,我認為還是當一隻自由滑翔的企鵝好。不過為了贊助自由軟體,我還是在 美國官方商店買了件1000台幣的T恤支持FreeBSD的開發人員,再將贈送的貼紙貼在筆電蓋上。

7月底, 終於能夠進入Arch Linux時代,手上的二台電腦都換成Arch Linux。體會到系統套件都是最新,什麼設定都要自己來的快感。

不過在虛擬機裡面玩Gentoo,被吸引後,於8月底將電腦雙雙換成Gentoo: 心得 系統遷移至Gentoo紀錄- 看板Linux - 批踢踢實業坊

用Gentoo體驗到,儘管有套件管理員,裝任何東西都要從頭編譯的快感,並知曉何謂Systemd V.S. 傳統Unix init系統的戰爭。

8月,加入中華民國軟體自由協會。

9月,研究所開學。根據觀察,英語系上課每個人都會帶自己的裝置。就裝置比例而言,無關性別,一半人使用Macbook,一半Windows,只有我是Linux。鑑於Linux硬體外觀沒什麼辨識度,所以我在筆電背蓋貼大大的Tux和Linux發行版的貼紙,穿Tux和印有FreeBSD小惡魔的衣服出門。但也就做到這種程度而已,我不會到處跟人說"I use Linux btw"。為了學分著想,上課需要的軟體不支援Linux我也不太敢跟教授靠北,而是用虛擬機解決,或是在許可下用odt取代docx交作業。大多數時候沒人會care你用什麼系統的。僅有一次,遇過博士生看我打指令覺得很好奇,真是尷尬。


9月~11月,在這之間短期接觸過Alpine Linux、GNU Guix、Plan 9、OpenIndiana (Solaris)、Linux from Scratch、Void Linux、Fedora Silverblue等小眾系統,多半於虛擬機體驗,部份有 寫下來供參考。

只有Linux from Scratch是真的參考手冊 跟Gentoo實體機裝在一起

還有些系統是裝在筆電上…數量遠超過桌機,我都記不清楚筆電到底裝過幾個發行版了。

除此之外,XFCE、GNOME、KDE、i3WM等「桌面環境」也都略有接觸,用最深入的是KDE和GNOME,深刻了解到他們各自的優缺點。


Gentoo每週更新一次,光編譯新軟體就長達二小時。我還記得那時我會一邊聽任賢齊的「死不了」、「天涯」,陳昇的「小雪」,一邊等待Gentoo編譯完成。

然而因為一些小錯誤,使得我於11月換回了Arch Linux: 用Gentoo二個月之後,默默換回了Arch Linux

♫ 如果你真的愛我 讓我走開 心疼你當初反覆那樣的說 如果你真的愛我 讓我走開 我決心不從舊夢中 掙脫 ♫

Arch和Gentoo無法開箱即用,卻讓我學到許多排除系統錯誤的策略:軟體無法執行不見得是bug,可能是某個軟體沒裝或是服務沒開;硬體無法驅動,就用指令查看有什麼核心模組缺了,然後看Wiki和Reddit找解方。這樣學習下來收穫頗豐,對未來開發程式、讀作業系統原理的書籍也很有幫助。

結果Arch比較適合我這種強迫症的人,又不會像Gentoo那樣太難管理。


時間進入2023年。

2023年1月,在筆電重新安裝openSUSE Tumbleweed,發覺YaST這類圖形化管理工具是真的好用,可以說openSUSE是整合KDE桌面環境最好的發行版。

但因為openSUSE系統偏冷門,很多軟體要用編譯的,或是偷Fedora的rpm來裝,openSUSE的第三方軟體庫「OBS」又沒有Arch Linux的AUR豐富。所以在日常使用了三個月左右後,筆電現在也是跟桌機一樣換回Arch Linux了。現在筆電桌布習慣放一隻openSUSE的蜥蜴,紀念openSUSE給我的良好印象。


2023年2月,一時失心瘋,追求長久的穩定所以將桌機的Arch Linux換成Debian Stable。原本以為可以安頓下來,後來Ubuntu的問題重新浮現:軟體版本太老了,尤其是KDE桌面!即使研讀宣揚Debian理念的 官方手冊,也無法阻止我一個禮拜後換回Arch。軟體超級穩定但陳舊的系統,當伺服器系統就好!我想,桌面系統已經習慣滾動更新發行版的模式了。

不過,讀Debian的軟體開發哲學學到了重要的幾點:妥善規劃與維護系統,不要製造科學怪人(亂裝第三方套件),不要盲目追求新東西。

到現在,桌機Arch Linux連續用6個月了,已經趕上過去用Ubuntu的最長時日了。如果知道背後原理,則Arch Linux同樣能夠用得很好。

你可能會問我,Distro-hopping這麼頻繁,硬碟都沒放重要資料?其實還是有的,重要的圖片、影片、音樂、虛擬機映像檔,這些預計保存10年以上的重要資產我是放在另一個硬碟,有些封存在MEGA雲端,需要用的時候再掛載。並且為適應Linux生態,那些硬碟我很早就格式化為BTRFS或EXT4檔案系統了。這也代表我的決心,不再返回Windows。

3. 平常Linux的用途,還有學習到的東西
#

Linux電腦當主力,同樣是用來打打字,上網,玩遊戲,這幾點不用提了吧。上課筆記用Linux,投影報告用Linux,打遊戲用Linux,繪圖用Linux…大概是這些用途。

說到娛樂,Minetest是玩法無止盡的開源方塊遊戲,專有遊戲有Steam能用,玩手機遊戲有Waydroid、Android x86虛擬機、ReDroid等各種方案。不過嘛…我越來越覺得研究自由軟體,並寫文章分享是比純粹打遊戲更有趣的事兒了。到現在遊戲變成我生活的休閒用具,而非大學時當成生活重心那樣了。

此外,日常使用Linux還學到以下三點:

全部使用Linux系統的好處是學會遠端存取的技術,早期還笨笨的研究X11 VNC、Sunshine的遠端桌面技術。後來發現遠端工作根本不需要圖形界面,SSH就能照顧得很好。遠端編輯Hugo部落格的檔案也是靠SSHFS解決。(本部落格的文章我都是在本機打好markdown檔案再推送到Github,交給雲端平台自動部署的。為避免每部電腦都要複製一份儲存庫,我採取遠端存取檔案的作法)

另外,Linux設定開發環境很方便,嘗試編譯給自己手機用的Android ROM的時候很快便配好環境。看到Gtihub上有趣的開源專案,複製下來用Anaconda很快就能架起來玩。因為Linux終端機與系統底層是這樣的接近,在安裝系統和配置環境的時候對作業系統概念有更多理解。寫程式不再只是看封閉原始碼的黑箱變出魔法,而是可以清楚的讓人知道背後在玩什麼花樣。

最後是學會使用Docker,架設一些self-hosting的服務,定期去Reddit的r/selfhosted板看有趣的自架軟體,以及商業SaaS的替代方案。容器真的蠻好用的,架設伺服器服務完全不需要去動系統設定(Arch Linux很脆弱的),交給Docker統一管理即可。外部網路連線使用ZeroTier(可惜他是專有軟體),使得我一定程度上可以依賴自架的服務,而不用依賴閉源的商業軟體。譬如 SearX搜尋引擎 PhotoPrism Invidious Stable Diffusion WebUI 個人AI助理等等。


當我坐在Linux電腦前時,就是把它當一般的電腦用。離開電腦關閉X伺服器節省資源,它就變成一台默默工作的Linux伺服器,隨時等候指令傳入,不開螢幕顯示卡也能運算。使用ZeroTier+SSH連線,我就可以用筆電、手機Termux管理遠端主機的各個服務。

4. 作業系統的元宇宙
#

「同學們,我們期末要使用X軟體製作心智圖,並用Y軟體跑統計分析。」

如果你問我,完全用Linux工作,但是真的遇到需要Windows系統的軟體,甚至會影響到學期成績的生死,究竟該怎麼辦?

答案是鑽研了多年的QEMU/KVM虛擬機技術,連雙重開機都不需要了。

如果將作業系統擬人為女孩,虛擬機就是讓女孩們進入元宇宙的裝置!

現在我願意稱QEMU/KVM為最強虛擬機軟體,VirtualBox、VMware該有的功能都有外,還有GPU直通這個殺手級功能,共享硬體資源也不是問題。所以, Windows的虛擬機器便成為救命法寶。但是我還是很少開Windows虛擬機,大約一個月開不到十次,基本上我的工作流程已用自由軟體及網頁程式取代。

除了安裝Windows外,虛擬機還能用來測試其他系統,有助於我寫自由軟體的安裝教學文章。例如Android-x86虛擬機可以 玩遊戲兼當雲手機 macOS虛擬機能夠了解果粉世界的開發環境。

在確認要真的Distro-hopping之前,我也會用虛擬機跑來玩玩看,例如Gentoo、FreeBSD、Debian皆是在虛擬機內評估過才開始安裝到實體機器上的。

5. 驛動的心,安居於Arch Linux + KDE桌面
#

經歷過一年的流浪後,回到了Arch Linux。

事實上,我背叛了文章最初提到的自由軟體主義。

目前我想追求的是人性與駭客兼顧的系統理念,圖形化和指令並重,以求能維持使用者自由,又能讓更多人使用Linux。所以我不排斥使用部份的專有軟體,從硬體到軟體皆然。但是大方向上,我還是鼓勵Linux使用者尋求自由開源的解決方案。譬如:有GIMP和Krita就不需要煞費苦心用Wine跑Photoshop了;人人都應該學LibreOffice和Kdenlive,取代常見但功能基礎的專有軟體;台灣教育現場應該多使用自由軟體。

但是不論怎麼妥協,我的底線是使用的系統還得是Linux,所以最終回到Arch Linux,這純粹是個人的選擇。它沒有花俏的包裝,沒有大公司干涉發展方向,沒有強迫使用者吞下的系統設定,並有足夠的用戶數量讓這個系統維持熱門。前面說過,接觸Debian使得我對系統維護有了更清楚的概念,因此在安裝Arch(包含現在仍在更新的 安裝教學文)時都儘量按照Wiki寫的best practice來佈置系統。往後安裝AUR的軟體更謹慎,多採用Flatpak和Docker技術安裝軟體。總結,用追求最新科技的Arch Linux,卻也避免過度激進的態度影響生活。


最後是推廣Linux問題,就發行版而言,我還是推薦新手優先嘗試Ubuntu,沒有其他的了。不論Canonical公司有什麼drama,Ubuntu幾乎已經是企業和個人電腦桌面的Linux標準了,用戶也很多。只要他們還是遵守自由軟體的底線,就沒有無腦抵制的必要。相關文章分類: Linux使用技巧

等用戶真的有興趣了再嘗試其他Linux發行版也不遲,更喜愛自由的人歡迎來學Arch Linux。

就桌面環境而言,太geek的桌面環境我不能接受,例如dwm、i3WM、Sway,那對推廣Linux會是反效果。

此外,在測試了好幾次後,我個人還是 覺得GNOME很難用,XFCE太簡陋,Cinnamon預設很醜,所以我到現在只認KDE Plasma為Linux最好桌面。 有人跟我抱怨它長得像玩具?不穩定?能調的設定太多使其變得繁雜?我認為這都不是問題,KDE的自由度還是比較高的;穩定度近年來也改善許多;KDE將命令行的操作整合到圖形系統設定不是雞肋,而是讓系統更好用的設定。

有了Arch Linux和KDE,寫Linux推廣教學文有了穩固的平台做示範。不過考量到大眾入門難易度,對外教學的例子我還是以Ubuntu的安裝方法為主(虛擬機真好用),有餘力的話才將Ubuntu與Arch Linux的安裝指令並列。

感謝世界上所有開發者的付出貢獻,才有了自由軟體和Linux生態系。

現在安頓在Arch Linux。在未來,或許又會繼續踏上更多Linux發行版探索之路。

「ここにはボクがいて そこにキミがいる それだけで 明日がかわるから」

這裡有我在,而那裡有你在。只是因為這樣,明天就會改變了啊。

相關文章

用Gentoo二個月之後,默默換回了Arch Linux
分類   人文藝術 自由軟體議題
標籤   Distro-Hopping Gentoo Arch Linux
為何該擺脫Android,改用主線Linux手機
分類   人文藝術 自由軟體議題
標籤   Free Software PostmarketOS Android
為什麼不玩《Minecraft》遊戲?別忘記它缺點就是專有軟體
分類   人文藝術 自由軟體議題
標籤   Minecraft Free Software

留言板

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

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

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