精選文章、推薦的最近更新

LibreOffice 使用技巧大集合

序:到了大學,我相信有很多做報告的機會,我基於踩了幾次雷,加上我是個在電腦使用方面有些背骨的人,身邊的人都用WIndows、MacOS,而我就算有WIndows我還是用Linux(目前是Ubuntu,這個發行版還不錯用)。其中,用LibreOffice的人少之又少,所以我想分享我...

2026年7月19日 星期日

關於我為何想到用debootstrap安裝Ubuntu,我又是有什麼理由再從debian切換到Ubuntu?

  說來好笑,我用的最久的發行版是Ubuntu,過程中輾轉用了Debian、Fedora、Manjaro和其他Ubuntu的Flavors但我卻選擇了Ubuntu,還是選擇有些奇特安裝方式。我也佷猶豫這個主題要怎麼展開,因為這是一個老生常談的問題,在系上是一個異類、之前有類似的文章、身邊看到有人為了研究而嘴上說要來考慮Linux,這都是我猶豫寫這個主題的原因,因為我的意見不能代表什麼,客觀看來就像是水一篇文章,這篇文章不會讓對Linux陌生的人可以找到切入點,這篇文章也不保證我有足夠新穎的觀點來讓大家眼界一新,這篇文章也不一定能讓為了科研使用Linux的人也可以獲得到我小小折騰過程中的快樂(搞不好是用headless)。也可以說,現階段的我,還不能把Linux發行版當作工具,我還是將其當作我的哲學,就像是數學是我的信仰,這也是這篇文章在講述我切換到Ubuntu的理由(我或許這部分還是很花心)。 

  這裡我想要講一些暴論(不要當真或是對號入座,這只是我的短期思想),表示說要專門花時間來折騰Linux的人,大多是不會下去折騰的,因為這一個心態本身就不會支撐你足夠久走下去,以我來說,我說暑假我要折騰虛擬機,結果到現在都還沒動手(其實我已經玩過了),為了折騰使我陷入我要折騰什麼、為何折騰等問題,遇上人類拖延的本能,就是裹足不前,反倒是因為相信了某種信仰而有了毅然決然的行動、花時間做出像是在折騰的事情,這再次呼應了Linus那一句:「就只是為了好玩。(Just for fun.)」不是為了做而做,受到哲學思想的號召。 

Debian倉庫簡介 

  Debian主要有四個倉庫分支(Suites),以Debian 13來說,有trixie、trixie-updates、trixie-security、trixie-backports,依序是指Debian 13的一般套件、必要非安全性更新(主要是軟體運作bugs修復更新補丁管到)、安全性更新、向後移植。而每一個Suites都可以再指定4個components,有main、non-free、non-free-firmware、contrib,關係如下(節選自Debian官方):

Components
套件標準
main
遵從 Debian 自由軟體引導方針(DFSG),並且不依賴於 non-free
non-free-firmware
不符合 Debian 自由軟體指導方針(DFSG),正常的系統安裝過程中必需要用到的韌體
contrib

遵從 Debian 自由軟體引導方針(DFSG),但依賴於 non-free 

non-free
不遵從 Debian 自由軟體指導方針(DFSG),並且不在 non-free-firmware
一般來說,這些Components我是全選,為了電腦的正常運作,至少前兩個是需要選擇的。順帶一提,ADB(Adndroid Debug Bridge)是包含在contrib倉庫的並且依賴non-free倉庫,從這個角度來說,開了contrib那麼non-free也建議打開。對不起,我做不到教主R.M.S.的教條,你要是說為了電腦可以正常運作,我還覺得我是RMS的信徒(只是不夠虔誠罷了),我連那RMS來信奉的權利都沒了。 

  不過,有一說一,RMS堅持的自由軟體和開源軟體是不一樣的,這個區分還是很重要的,android是開源的,但不是自由軟體,因此Google可以合法限制側載(道義上我是不知道,至少我是反對的),我認為安全性是站不住腳的,這個就像是在臺灣,明明就有做戶口登記,但還是有罪犯一樣,Google納入規範、收集開發者身份並不會讓惡意程式的數量下降,反而可能還讓其他有心人士廣泛教導怎麼用ADB來安裝軟體,屆時這個更加深層的調試接口被濫用,使用者就像部分Windows用戶不明究理去修改登錄檔那樣,有助於減少系統弱點嗎?我深深懷疑。而且,要是有一些App是在網路受限地區,人民維護人權所需要安裝的軟體(就例如Tor Broswer),這無疑也是對於人權的一個漏洞。我認為,保持android開放是保護我們還有選擇的權利,你可以不去投票,但不代表你不需要投票權、民主賦予的權利(或許該考慮去湊個熱鬧:《保持安卓開放》)。 

Ubuntu的倉庫簡介 

  main對應debian的main,主要是conanical公司維護的自由、開源的軟體;universe也是提供自由軟體或是開源軟體,不過這是由社群維護;multiverse主要對應的是debian的non-free和contrib,主要是有法律問題、版權問題的套件,會統一放在這裡,一般來說是不會為這個倉庫分支的套件大補丁的,仰賴開發者維護力度;restricted對應的是debian的non-free-firmware,主要是提供閉源驅動、閉源韌體的倉庫。因為Linux的軟體安裝是需要統一從倉庫Pull到電腦上,電腦再對依賴求解,因此部分發行版會有倉庫專門針對非開源、非自由的軟體(當然也有完全不提供的)。Fedora用來提供非自由、非開源的軟體、驅動是統一用RPM Fusion倉庫(還有其他倉庫,像是要使用閉源編解碼套件,還要打開H264倉庫),這部分是因為法律風險的選擇(你可以用,可以合理的使用,但牽涉到「分發」,你的法律風險是很需要留意的)。 

  這裡還要在碎念一下,不要用Windows的思維來裝軟體(推薦該參考這個影片:《【新手向】Linux太难了?软件都不会装?只是你的习惯在作祟 | Linux安装软件的正确姿势》——飛蚊話),因為你很有可能會破壞電腦套件的依賴關係,同為類UNIX的MacOS安裝軟體是類似snap那樣,開發者將所需的依賴一次打包,因此軟體占用的空間會稍大,但也算是規避依賴問題,至於Windows也是類似的做法,不過Windows底層的依賴變化不會太劇烈,以及軟體可以自己打包需要的依賴(像是.dll文件),這主要是不同歷史背景下導致的結果罷了(你應該參考飛蚊話的這個影片:《依赖问题只有Linux存在吗?除了苹果,Windows也有。能修复,只是不那么正经》)。 

Backports(向後移植)倉庫到底是要做什麼? 

  讓我們根據Debian官方的說明文件來抽絲剝繭一下。首先是backports倉庫的維護時間,從一個stable發佈後開放backports倉庫,但是backports倉庫的維護截止日期根據不同的大版本有不同的策略,但一般來說,是在下一個大版本發佈後往後推一年就是backports停止維護的日期,像是Debian 12在2023年7月10日發佈,那麼Debian 11的backports倉庫在2024年7月10日左右就會不被維護。 

  我們來看看backports裡面的套件從哪裏來的。有些人說Debian 13的backports的軟體是從Debian Testing那裏經過測試後發佈下來的,這個其實不大正確,這裡要不同階段的穩定版來說——stable和oldstable。以現在來說,最新的Debian 13是stable,而trixie-backports倉庫部分是從Debian Testing來的,有部分是從Debian Sid/Unstable下來的,這是因為部分安全性更新是Debian Sid先拿到的;現在Debian 12是oldstable,backports倉庫就有分成bookworm-backports和boolworm-backports-sloppy,前者是從Debian 13移植過去的,後者是從Debian Testing或是Debian Sid移植回去的。這裡我還想說一下Debian開發流程的一些誤區,Debian不是從Sid到Testing再到stable那樣的開發流程,有些人推薦桌面用戶用Debian Testing,認為軟體相對新穎且有經過sid那裏的冷靜期(我覺得Andrea Borman的這個影片《TW Why I Am Going Back To Debian Stable. 》很值得參考一下,這從桌面使用者的角度來看的觀點,而且我記得她是從Sid換到Stable,還是有些道理的),但實際上,假如軟體有安全性漏洞,Sid可以依靠開發者的勤奮努力,進而拿到補丁,Stable可以依靠Debian安全團隊的補丁、豁免Sid發過來的補丁,但是因為這些安全補丁不一定通過Sid的測試要求,所以Testing用戶可能都拿不到這個安全補丁,從安全角度來說,我早早放棄日常使用Testing的想法了。 

  我們能來看看backports倉庫的提供目的是什麼,來看一下來自官方的說法: 

 ...the software is a little bit outdated compared to other distributions. This is where backports come in.

這裡不難看出,backports倉庫的目的是要補充一些過舊的軟體,讓使用者可以適當地使用到新版本的軟體。難麼,「適當地」的定義(或是指南)是什麼?同樣,我們來看看官方的說法 

...It is therefore recommended to only select single backported packages that fit your needs, and not use all available backports. 

這裡就為了我哲學的反思埋下了伏筆。我們來解讀一下,Debian官方推薦選用少數被向後移植的軟體軟體,因為這些軟體可能未經過完善的測試,儘管backports儘量要求這些軟體要能夠儘量完全利用debian 13鎖定版本的那些和書庫,但還是不能保證不會出問題。這裡我還想要再點一下,很多人以為debian的stable分支是指「穩定」(就像是free software常被以為是免費軟體,殊不知也是指自由軟體),但其實stable是指「不大變化」的意思,具體來說,系統的一些函數庫、基本組件的版本是會被鎖定的,Debian團隊是針對這些被鎖定的套件進行修補、監控,不求沒有bugs、只求不要有新的bugs,儘量讓這些bugs處於可控、甚至可預測(我認為不可變系統也是在這個思路上用別的方法來實作)。 

為何不選其他系列的發行版? 

  我就粗淺地點評一下我用過的發行版。老實說,我用過的並不多,因為要能夠方便支援安全啓動的發行版就刷掉不少,同根的發行版我就不多說,正如飛蚊話說過的,用到後面,發行版可能最大的不同就是套件管理器了吧。 

  • Manjaro:
      pacman管理器有些粗糙,對於依賴處理我用起來不是很順手,pamac在我看來比較像是pacman的別名,語法類似apt,還可以處理AUR,但是在底層套件管理器依賴處理有些粗糙的前提下,我覺得價值不大。
      在驅動上,我用下來還好,但是驅動沒有Ubuntu系列測試足夠成熟,所以我有時裝一下閉源驅動下次開機就黑屏了。我覺得KDE桌面環境的整合就還不錯,GNOME的就還好,像是KDE裡面的fcitx可以整合到系統設定裡面,並且預設打包的KDE全家桶是有簡單篩選過的,沒有覺得太臃腫。 
  • Fedora:
      如果你是用GNOME桌面,那一切都很舒服,有着新且穩定的GNOME桌面, 開啓RPM Fusion等倉庫也不麻煩。
      缺點是Linux內核緊跟上游,更新頻繁,這我不是很喜歡,需要時常下載大檔案來升級內核,重點是我感知不強。另一個我想要噴的是dnf管理器,我覺得dnf的依賴處理還是比不上apt,dnf remove <package_name>類似apt autoremove -purge <package_name>,雖然我常用apt autoremove -purge <package_name>,但是不代表我不需要apt remove <package_name>,dnf總會很聰明的要連根拔起相關依賴,我不能輕易的移除少數我需要的套件,最印象深刻的例子就是我移除fltapak卻連GNOME應用商店都要一起移除,單獨裝GNOME應用商店卻還要把flatpak一起裝上去(不能單獨選擇!)。
      還有就是Fedora開發者對於桌面用戶的rpm套件不積極,縱然很多開發者會打包deb而不打包rpm,但社群可以重新打包一下就好了吧?或許flatpak是未來的趨勢,但我不是很想用(半架空了操作系統,我還要這個發行版做什麼?)且有些佔空間,日常管理我還得要同時關心dnf和flatpak。
      我對於新技術相對持開放態度,大概得益於我入坑的時候,Linux的進化的鎮痛期過去了一大半了吧(像是pipewire取代pulse audio、wayland取代X11、systemd取代SysV Init),因此這是Fedora對我的誘因(新技術的採用激進且因為紅帽工程師有加入開發,還是相對放心的)。
      另一個我覺得算是有些敗筆的是臺灣的Fedora社群沒有Ubuntu活躍,我是指telegram上的社群,之前問了關於分區的問題,沒有人回復,過了一個月左右有人發佈了別的訊息這個社群才開始有一段時間有話(推薦看看看:我在FB的貼文)。
  • Debian:什麼都好,敗在我的哲學(下一段會講)。 

Debian給了我什麼哲學?我違背了什麼? 離教者之歌? 

  離教者,原本是指原本受洗的基督宗教的教徒在經過一番思索後,決定離教的一群人。而我從Debian離開了,原本以為有遵守Debian的使用規範,但似乎沒有,那麼,我算是背棄了Debian哲學的離教者嗎? 

  在Debian 13發佈後,今年四月再次跳到Debian 13(理由是因為我把Ubuntu的桌面環境玩壞了,加上手癢),發現backports倉庫的好處——可以用上相對新一點的套件。我最開始是發現只有backportrs倉庫提供telegram,在遵守the debian way的情況之下,我不選擇使用flatpak、snap或是解壓縮tar文件直接執行軟體,那麼,使用backports倉庫的套件也是必要的,我也還沒違背Debian對於backports倉庫的初衷。後來我又發現LibreOffice也有backports版本,我也換上去了,發現裡面有新版的Linux內核,我也換上去了(剛好那陣子對於Ubuntu用上Linux 7.0的討論度還蠻大的且似乎又一大改進)。到最後,我執行了「sudo apt -t trixie-backports upgrade」,也因此我後來才選擇去使用debian系列又相對套件品味激進的Ubuntu。 

  我們來盤點一下我犯了什麼錯,首先前面兩個套件是必要的,我得要用Telegram、LibreOffice的新特性我用得到;再來看看新版的Linux內核,這其實對我而言是沒有必要的,因為我感知不強,但得益於Linus對於「Don't Break Userspace.」的堅持,其實影響也不大;最後來看看那一個升級命令,這才是我走火入魔的地方,這會把電腦那些lib-套件都升級上去,依照Debian官方說法,backports是不會升級重大函數庫,除非是很必要的依賴,不然應該遵守最小原則(我這麼稱,額外的依賴應該愈少愈好)。 

...That said, Debian Backports Policy does not allow backports of libraries that would break all dependent packages in stable (eg: new Qt 5.x releases), and by virtue of this, Debian Backports are considered generally safe when used as intended on an individual package basis. 

  一語點醒夢中人。我後來想要安裝虛擬機的套件,發現電腦內部的函數庫太新所以裝不了,再加上寫這篇文章去了解backports倉庫,我才理解,Debian的主軸是要想辦法讓主倉庫的套件可以共用愈多的函數庫為前提,因此你不應該任意升級你的函數庫,這會破壞到系統的依賴,這也是為何會大幅度破壞依賴的套件是不會被移植進去的。我們來看看一個好的第三方源的例子——firefox,debian上只有提供firefox-esr,這個版本有些舊以至於開一些網頁有時會有些變形,用了Mozilla官方的PPA源,下載的依賴都是Mozilla官方提供的,並且沒有提供什麼lib-開頭的套件來破壞系統的依賴關係,這裡再次點出Debian主軸價值的珍貴。 

我怎麼不去滿足snap依賴?PPA是另類的惡魔? 

  在我之前講過AppArmor的文章提到過,最近的我有些想要減少容器技術,看着系統占用的體積愈小、剩下必須的套件,那一種收縮限度的感覺,還蠻舒服的。因此,我是不考慮Flatpak、snap作為我圖形應用程式的補充。 

  先說說Telegram,我本來想說Ubuntu只提供snap,官方只提供flatpak、snap再不然就.tar文件解壓縮直接執行程式,先不說前面兩個,優勢還是有的,但後者我是更不可能用的,因為這不便於我管理電腦的套件,而且你不覺得手動執行一個未被中心列管的可執行程式本身就是一件很危險的事情嗎?用套件管理器運行的程式至少大多數用到的套件是可以被追蹤的,AppArmor有得到列管也是可追蹤的,刪除程式還不怕會殘留過多(應用程式的啓動捷徑一般是放在家目錄裡面的,用.tar解壓縮直接打開為自動在我的家目錄留下啓動捷徑,刪掉軟體還得要追蹤這個應用程式殘留的路徑)。直到後來我翻到一個文章——〈How to install Telegram - Ask Ubuntu〉,意外發現PPA有人打包官方的telegram,且更新速度還算及時、目前也還有更新,但似乎不是官方打包就是了;另一個是TLP,Ubuntu官方收錄的TLP是舊版的1.8,但官方有維護PPA因此可以用到較新的TLP1.10。這讓我想到Ivon說到Arch Linux的好處,就是AUR讓他少用Flatpak、snap作為軟體的補充來源。 

  從這個地方也可以看到,我已經背叛了Debian社區對於軟體源的建議:「你應該少用(甚至不要用)第三方源,你或許可以考慮Docker、Snap、Flatpak來作為補充,但你更應該儘量使用官方打包的套件」,這也違背了我在AppArmor的文章提到:「你應該多用官方倉庫減少電腦中毒的機會,遵守the Debian Way」,因此我認為PPA或許是另類的惡魔(我也可以同樣地認為AUR或許也是另類的惡魔),而我或許已經是離教者了。但我還是贊同應該少用PPA,以免下一波的依賴地獄,或是使得電腦得到不必要的風險,至少「尋找官方倉庫提供的替代方案」還是很值得的(我最後用Evolution來取代Thunderbird,因為Thunderbird的PPA的已經兩年以上沒有甚麼動靜了)。 

我是在折騰嗎? 

  這部分是我想回應暴論的部分。我其實一直想吧Linux和折騰脫鉤,不要讓大家看到Linux就和折騰聯想在一起,但是Linux是可以折騰的。我覺得換發行版是在尋找符合自己使用上的哲學,假如你是個會無形中破壞debian做法的桌面使用者,與其想辦法讓debian提供的哲學結界裡面捅出一片天,倒不如物色下一個符合哲學的發行版,找不到再捅出一片天,甚至回到Windows也不遲。這就像是人生遇到一些問題、困擾,不同人生哲學的人給的答案會不一樣的自然,找出你的哲學吧! 

參考資料 

沒有留言:

張貼留言