[心得] 系統遷移至Gentoo紀錄

看板Linux作者 (內容農場殺手)時間2年前 (2022/09/03 00:00), 2年前編輯推噓19(19026)
留言45則, 17人參與, 2年前最新討論串1/1
看上Gentoo是因為高自訂性和最新版軟體。 下面簡介一下Gentoo最新的特色,以及使用感受。 https://i.imgur.com/58elkzK.jpg
一、Gentoo特色 Gentoo是滾動更新的Linux發行版,跟其他發行版最大的不同,在於需要從原始碼編譯安 裝Linux核心和軟體。聽起來很像Linux from Scratch吧?但跟Linux from Scratch比起 來,Gentoo官方至少有提供最小的檔案系統,並且編譯是交給套件管理員Portage自動處 理。要安裝軟體只要打指令,套件管理員就會自動下載並編譯安裝。 因為是從原始碼編譯,軟體效能「可能」會比直接裝二進位檔好。Portage還提供一套 "FLAG"系統,在`/etc/portage/make.conf`使用USE變數,指定Portage編譯或不編譯特定 軟體功能。例如把AV1編碼器編入ffmpeg,或是叫Portage不要編譯wayland相關的功能。 有些軟體編譯很耗時,所以官方儲存庫有提供編譯好的二進位(binary)版本,但數目極為 稀少。此外過去Linux核心要使用者手動設定編譯,後來也有現成的版本可以選用。到 2022年,Gentoo連LiveUSB都有了。 https://i.imgur.com/XThXeJ6.png
因為Gentoo深受FreeBSD影響,除了套件命名很有FreeBSD Ports的風格外,現在預設的 init系統仍是OpenRC,當然Gentoo也有提供主流的systemd供選擇。 二、Gentoo安裝過程 我在二台電腦各裝了迥然不同的Gentoo環境,前者是OpenRC + KDE (X11),後者是 Systemd + GNOME (Wayland) 主要是按照《Gentoo AMD64 Handbook》做,這本手冊寫得很詳細,按照步驟做可以把X視 窗以外的軟體都設定好。如果有以純文字模式裝過FreeBSD或Arch Linux,那麼Gentoo應 該不難安裝。 安裝過程:用Gentoo ISO開機,分割硬碟,之後把Gentoo的stage3檔案系統下載到硬碟, 解壓縮,chroot進去安裝現成的Linux核心,編譯軟體,設定開機服務。 詳:https://ivonblog.com/posts/install-gentoo/ `/etc/portage/make.conf`裡面記得依照CPU性能設定編譯的執行緒,例如 `MAKEOPTS="-j8"`。 庶民等級的4核心CPU,不管是KDE還是GNOME都要編譯4小時以上...這還是我已經選了「最 小化安裝」的情況,然後編譯時風扇聲音都像飛機起飛一樣。 三、Gentoo 使用小撇步 1. Gentoo Wiki和Arch Linux Wiki一樣都是十分詳細的百科,Gentoo會講到更多底層運 作的部份。此外,Gentoo套件官網的ebuilds能看到安裝套件預設會啟用的FLAG,安裝套 件前要研究一下FLAG。 https://i.imgur.com/PmJOZCI.png
2. OpenRC跟Systemd用起來沒有差,主要是後者已經成為主流,甚至某些程式依賴 Systemd,例如KDE的System Monitor。桌面環境我還是比較喜歡自由設定的KDE。GNOME單 純因為對觸控板手勢支援較好,然後Wayland還是bug一堆。 https://i.imgur.com/p7IkNGK.png
3. 在`/etc/portage/make.conf`中`ACCPET_KEYWORDS`設定"amd64" 會下載到穩定版套件 ,"~amd64"則是不穩定。 我是比較喜歡後者,後者會下載到較新的軟體,甚至會影響下載的的Linux核心版本,例 如Fcitx的版本會略為新一點。 此外,make.conf雖可以設定全域的FLAG,但個別套件另外寫在 `/etc/portage/packge.use`能防止互相影響,例如允許個別套件啟用"doc"的FLAG。 Protage是十分智慧的套件管理員,make.conf一有變化,執行`emerge -avuND world`會 自動安裝或刪除套件,要清理徹底則是使用`emerge --depclean`。 還有,Gentoo在編譯未安裝套件的階段是可以按CTRL+C取消編譯的,下次Portage會自動 從還沒編譯的地方繼續。 如果某個軟體是被meta-package拉進來,要移除就要靠FLAG和自行處理依賴關係了。 Gentoo不太容易移除單一軟體,所以套件選擇很重要。 4. 編譯安裝時間過長的套件有GCC、Rust、使用瀏覽器引擎的程式 除GCC實在必要外,其他二者我都指定安裝bin版本。真的,一套桌面環境只是很多小套件 要編譯,但這些單一套件編譯時間長的無法忍受。 而懶的調整和求穩定的大型程式就用Flatpak裝,例如LibreOffice、Steam、瀏覽器。 不然的話就會像我一樣VLC播個影片不斷碰到「不支援的編解碼器」,就得調整FLAG重新 編譯。 https://i.imgur.com/WaNPzWO.png
老實說Gentoo有逼迫人更優先選擇Flatpak的因素...Gentoo Overlay社群套件庫還在觀望 。 總結 最早接觸Gentoo是在移植postmarketOS (Alpine Linux)遇見的,因為只有Gentoo有詳細 的調整kernel的資料。在適應滾動發行版的模式後(就是要最新!!因為想早點體驗AVIF圖 片和AV1編碼的快樂),從openSUSE Tumbleweed遷移到Arch Linux,結果Arch Linux最近 更新後GRUB消失,用隨身碟chroot修復後,還是順勢遷移到了Gentoo。 跟安裝Arch Linux一樣,使用Gentoo光是調FLAG就能學到很多底層知識了。然後像是init 、音訊系統這些東西,就是閱讀wiki後靠自己決定要使用哪個。 學Gentoo何只是折騰而已,少了Arch的便利工具,Gentoo光是調整軟體編譯設定就逼迫用 戶成為半個開發者了。如果深入到學習Linux from Scratch的並協助修改程式,都能自己 籌劃一個發行版了。 然而我只是一個使用PC的外行人,喜歡體會Linux和自由軟體的樂趣。Gentoo用起來就是 有更高的自定義性,但某些開發場景可能還是得靠虛擬機或Docker跑,所幸Linux虛擬化 不是難事。 -- https://i.imgur.com/KQbyqNf.jpg
https://i.imgur.com/uZAFfTb.jpg
https://i.imgur.com/FTZwiKG.jpg
https://i.imgur.com/RAftQ68.jpg
https://i.imgur.com/vZSP2Of.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.39.59.250 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1662134425.A.79F.html

09/03 01:15, 2年前 , 1F
這年頭還用Gentoo推一個
09/03 01:15, 1F

09/03 01:16, 2年前 , 2F
認識的很多都轉到其他distro了
09/03 01:16, 2F

09/03 01:23, 2年前 , 3F
不是很懂「Gentoo不太容易移除單一軟體」的意思,用
09/03 01:23, 3F

09/03 01:23, 2年前 , 4F
emerge -C =套件.版本 應該就可以單獨移除了
09/03 01:23, 4F
我看Wiki是說直接用這個指令可能會破壞相依性,所以是用deselect。例如gnome-base會安 裝一堆小遊戲,USE添加-games才拆掉。

09/03 02:39, 2年前 , 5F
所以為什麼Arch是烏賊娘?
09/03 02:39, 5F

09/03 02:41, 2年前 , 6F
推用心介紹,跟用MicroG半取代那篇一樣詳細
09/03 02:41, 6F

09/03 05:37, 2年前 , 7F
09/03 05:37, 7F

09/03 07:22, 2年前 , 8F
09/03 07:22, 8F
※ 編輯: ivon852 (114.39.59.250 臺灣), 09/03/2022 07:39:39

09/03 11:07, 2年前 , 9F
emerge -C的破壞相依性比較會發生在移除lib的時候,不過
09/03 11:07, 9F

09/03 11:07, 2年前 , 10F
gentoo也會在移除完成和一般emerge提醒你要
09/03 11:07, 10F

09/03 11:08, 2年前 , 11F
emrege @preserved-rebuild將相依性lib進行重新編譯關聯
09/03 11:08, 11F

09/03 11:08, 2年前 , 12F
其實長時間使用gentoo後emerge -C還是很容易用到,因為
09/03 11:08, 12F

09/03 11:08, 2年前 , 13F
rolling update有些套件在某些時候會改相依其他類似的lib
09/03 11:08, 13F

09/03 11:09, 2年前 , 14F
那就會造成互相block,就得先手動emerge -C移除
09/03 11:09, 14F

09/03 11:10, 2年前 , 15F
不過這些都是經驗談了,慢慢使用享受gentoo會慢慢理解這些
09/03 11:10, 15F
謝謝教學,有些preserved libs真的很難移除

09/03 13:36, 2年前 , 16F
我用Gentoo+zfs on root跟Slackware快一年了,Gentoo
09/03 13:36, 16F

09/03 13:36, 2年前 , 17F
的use flag真的是一個讓我離不開的東西。一般來說如
09/03 13:36, 17F

09/03 13:36, 2年前 , 18F
果一個軟體是不需要超級使用者權限的我都會直接裝Nix
09/03 13:36, 18F

09/03 13:36, 2年前 , 19F
package.
09/03 13:36, 19F

09/03 13:41, 2年前 , 20F
推分享
09/03 13:41, 20F

09/03 14:22, 2年前 , 21F
其實現在安裝 FreeBSD 如果只是要裝到能開機,也是照著選
09/03 14:22, 21F

09/03 14:22, 2年前 , 22F
單按一按就完成了,我覺得 Arch 和 Gentoo 比較難裝。
09/03 14:22, 22F

09/03 14:23, 2年前 , 23F
另外移除單一軟體,如果是自己主動安裝的軟體,應該可以
09/03 14:23, 23F

09/03 14:24, 2年前 , 24F
用 emerge --depclean 安全移除吧。
09/03 14:24, 24F

09/03 14:37, 2年前 , 25F
用 Gentoo 感覺一半以上的時間都在編譯,太影響生産力
09/03 14:37, 25F

09/03 14:48, 2年前 , 26F
用過一陣子Gentoo 當急需某套件但那個套件又很大時真
09/03 14:48, 26F

09/03 14:49, 2年前 , 27F
的會傻眼
09/03 14:49, 27F

09/03 20:15, 2年前 , 28F
FreeBSD 都可以用 pkg 裝二進位包了
09/03 20:15, 28F

09/03 20:19, 2年前 , 29F
但推描述詳細, 這樣想試的話至少有個切入點可以研究了
09/03 20:19, 29F

09/03 23:29, 2年前 , 30F
gnome + wayland對觸控板是一大福音
09/03 23:29, 30F

09/03 23:30, 2年前 , 31F
目前我用opensuse tumbleweed
09/03 23:30, 31F

09/03 23:30, 2年前 , 32F
有機會也想來試試gentoo
09/03 23:30, 32F

09/03 23:31, 2年前 , 33F
不過還是先過了arch再說吧
09/03 23:31, 33F

09/03 23:50, 2年前 , 34F
直接Gentoo回頭Arch就簡單了(? 或者中間有個funtoo
09/03 23:50, 34F

09/03 23:51, 2年前 , 35F
funtoo會直接建議使用Debian source,少了編kernel的麻煩
09/03 23:51, 35F

09/04 15:38, 2年前 , 36F
10年前左右查資料還偶爾上Gentoo wiki,後來大多去arch了,
09/04 15:38, 36F

09/04 15:38, 2年前 , 37F
Gentoo 的可能真的說的太底層。還記得有大學同學在Gentoo
09/04 15:38, 37F

09/04 15:38, 2年前 , 38F
上編 Gnome ,睡桌上3天……
09/04 15:38, 38F

09/04 15:39, 2年前 , 39F
想了想應該是15年前。arch wiki感覺比較通用點。
09/04 15:39, 39F

09/05 00:51, 2年前 , 40F
才剛從gentoo換到debian,試了gentoo三個月,在我筆
09/05 00:51, 40F

09/05 00:51, 2年前 , 41F
電上的編譯速度實在是吃不消
09/05 00:51, 41F

09/05 22:31, 2年前 , 42F
sabayon幾乎有提供二進位包,安裝也方便
09/05 22:31, 42F
八卦是Funtoo和Sabayon開發人員2020年宣布開始合作,也許哪天他們會合併 ※ 編輯: ivon852 (223.139.120.219 臺灣), 09/05/2022 23:30:39

09/06 05:46, 2年前 , 43F
讚一個
09/06 05:46, 43F

09/07 02:41, 2年前 , 44F
我自己用 slackware 也都是配 arch 或 gentoo 的資料看
09/07 02:41, 44F

09/07 02:41, 2年前 , 45F
他們那邊的資料真的太有幫助了
09/07 02:41, 45F
文章代碼(AID): #1Z4YYPUV (Linux)
文章代碼(AID): #1Z4YYPUV (Linux)