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

作者: ivon852 (ASUS)   2022-09-03 00:00:12
看上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
作者: a73126 (Jalen)   2022-09-03 01:15:00
這年頭還用Gentoo推一個認識的很多都轉到其他distro了不是很懂「Gentoo不太容易移除單一軟體」的意思,用emerge -C =套件.版本 應該就可以單獨移除了
作者: skycat2216 (skycat2216)   2022-09-03 02:39:00
所以為什麼Arch是烏賊娘?
作者: chongzi138   2022-09-03 02:41:00
推用心介紹,跟用MicroG半取代那篇一樣詳細
作者: Hurricaneger (褲襪脫落大尉)   2022-09-03 05:37:00
作者: amos30627 (Destiny)   2022-09-03 07:22:00
作者: a73126 (Jalen)   2022-09-03 11:07:00
emerge -C的破壞相依性比較會發生在移除lib的時候,不過gentoo也會在移除完成和一般emerge提醒你要emrege @preserved-rebuild將相依性lib進行重新編譯關聯其實長時間使用gentoo後emerge -C還是很容易用到,因為rolling update有些套件在某些時候會改相依其他類似的lib那就會造成互相block,就得先手動emerge -C移除不過這些都是經驗談了,慢慢使用享受gentoo會慢慢理解這些
作者: ichika42069 (御守一花)   2022-09-03 13:36:00
我用Gentoo+zfs on root跟Slackware快一年了,Gentoo的use flag真的是一個讓我離不開的東西。一般來說如果一個軟體是不需要超級使用者權限的我都會直接裝Nixpackage.
作者: iammortal (willow)   2022-09-03 13:41:00
推分享
作者: lantw44 (#######################)   2022-09-03 14:22:00
其實現在安裝 FreeBSD 如果只是要裝到能開機,也是照著選單按一按就完成了,我覺得 Arch 和 Gentoo 比較難裝。另外移除單一軟體,如果是自己主動安裝的軟體,應該可以用 emerge --depclean 安全移除吧。
作者: dobedobedo (DoBe)   2022-09-03 14:37:00
用 Gentoo 感覺一半以上的時間都在編譯,太影響生産力
作者: idisnothing   2022-09-03 14:48:00
用過一陣子Gentoo 當急需某套件但那個套件又很大時真的會傻眼
作者: holishing   2022-09-03 20:15:00
FreeBSD 都可以用 pkg 裝二進位包了但推描述詳細, 這樣想試的話至少有個切入點可以研究了
作者: LawLombie (盧芹達)   2022-09-03 23:29:00
gnome + wayland對觸控板是一大福音目前我用opensuse tumbleweed有機會也想來試試gentoo不過還是先過了arch再說吧
作者: a73126 (Jalen)   2022-09-03 23:50:00
直接Gentoo回頭Arch就簡單了(? 或者中間有個funtoofuntoo會直接建議使用Debian source,少了編kernel的麻煩
作者: sppmg (sppmg)   2022-09-04 15:38:00
10年前左右查資料還偶爾上Gentoo wiki,後來大多去arch了,Gentoo 的可能真的說的太底層。還記得有大學同學在Gentoo上編 Gnome ,睡桌上3天……想了想應該是15年前。arch wiki感覺比較通用點。
作者: ys35078657 (artycher)   2022-09-05 00:51:00
才剛從gentoo換到debian,試了gentoo三個月,在我筆電上的編譯速度實在是吃不消
作者: lainevakey (通鑑)   2022-09-05 22:31:00
sabayon幾乎有提供二進位包,安裝也方便
作者: s338757   2022-09-06 05:46:00
讚一個
作者: drm343 (一卡)   2022-09-07 02:41:00
我自己用 slackware 也都是配 arch 或 gentoo 的資料看他們那邊的資料真的太有幫助了
作者: guteres (走出自己的路)   2022-09-12 20:14:00
Sybayon已改名MocaccinoOS了
作者: s8321414 (冥王歐西里斯)   2022-09-19 08:00:00
Sabayon 居然改名了 :O

Links booklink

Contact Us: admin [ a t ] ucptt.com