關於「openSUSE MicroOS Aeon」當桌面系統使用感想。
Ivon很抱歉用這麼長的標題,因為剛改名不久,所以用了全部關鍵字上去。
一個追求穩定、可預測的系統,讓蜥蜴Geeko安祥的住在您的電腦裡。
1. MicroOS簡介#
這是SUSE公司推出的Linux發行版「MicroOS」。寫法是Micro OS喔,不是Macross,也不是Microsoft。
根據 官網介紹,MicroOS屬於不可變系統(immutable distro),root分區幾乎全部唯讀,更新後直接覆蓋。使用者得依賴Flatpak、Podman容器技術安裝軟體。
設計宗旨為:追求更高安全性、可預測、開箱即用、懶人設定、低自訂性的Linux系統。
說這麼多,你不妨把它想成ChromeOS版的openSUSE吧,但我們還是有保留root權限的喔!
MicroOS分為伺服器版MicroOS、桌面版MicroOS Desktop、桌面版Leap MicroOS
好的,我知道你已經開始頭暈了。
- MicroOS = 伺服器版immutable openSUSE Tumbelweed
- MicroOS Desktop = 桌面版immutable openSUSE Tumbleweed
- Leap MicroOS = 桌面版immutbale openSUSE Leap
比較多人推薦使用的是MicroOS Desktop。
2023年5月,MicroOS Desktop改名叫做「openSUSE Aeon」,取自印度哲學「梵」的意思,這樣辨別度總算比較高了。除了Aeon外,還有一個Kalpa的版本。
Aeon預載的桌面環境為GNOME,開發狀態為Release Candidate。
Kalpa桌面為KDE Plasma,開發狀態為Alpha。
所以Ivon選擇比較精簡、相對穩定的GNOME桌面安裝到電腦上。
下面Ivon文章簡稱MicroOS,「MicroOS」一律指代「openSUSE Aeon」。
既然MicroOS使用Tumbleweed的套件庫,那麼應該也不難猜到了,MicroOS確實是個「滾動發行版」,套件非常新。採用BTRFS機制保證就算更新失敗仍然可以回滾。
因為系統限制緣故,MicroOS無法使用YaST,等同廢了一隻手啊,我們得大量依賴命令行操作系統了。
儘管部份Zypper指令還是可以用,但動到系統檔案的操作得使用transactional-update
建立新系統「快照」。
MicroOS內建Flatpak、Distrobox二個工具,看來就是要你用他們來裝軟體的,熟悉使用容器技術。儘量不要用到transactional-update指令,防止系統「不穩定」。
但你想怎麼可能嘛~ 我們還是得裝一些常用工具破壞系統。
2. 個人的安裝情況#
本節列出我個人的常用套件之安裝,套件管理員與系統架構的細節後面再講。
電腦:
- MSI Modern 15 A10RBS
- CPU Intel i5-10210u
- GPU Nvidia MX350
2.1. 下載ISO#
雖然MicroOS分成Server、Aeon跟Kalpa,但其實安裝套件都是包在同一個ISO裡面的。就跟一般openSUSE Tumbleweed安裝光碟一樣,在安裝圖形界面的再選取要搭配的桌面套件環境即可。
至 官網下載ISO,用 Ventoy製作開機碟,開機後按照圖形界面指示安裝系統。注意MicroOS僅支援BTRFS檔案系統。最後在選取桌面套件的時候勾選Aeon(GNOME)。
2.2. 安裝Fcitx5#
- 開啟終端機,我要來破壞系統了。安裝Fcitx5輸入法,並啟用新酷音
sudo transactional-update -i pkg install fcitx5 fcitx5-chinese-addons fcitx5-chewing
cat << EOF >> ~/.profile
INPUT_METHOD=fcitx
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
EOF
開啟GNOME Tweaks,把Fcitx5加到開機自動啟動項目
開啟Extension Manager,安裝Input Method Panel擴充功能。重開機。
2.3. 安裝Nvidia驅動#
根據 openSUSE Wiki,我的MX350顯示卡理應能裝G06驅動,不過我測試要用G05比較穩。
MicroOS安裝Nvidia套件庫,重開機
sudo transactional-update -i pkg install openSUSE-repos-NVIDIA
- 安裝Nvidia驅動套件
transactional-update -i pkg in nvidia-gfxG05-kmp-default x11-video-nvidiaG05 nvidia-glG05 nvidia-computeG05
CUDA套件庫可能可以用Tumbleweed的版本?但裝不起來。
nvidia-smi和nvcc指令僅限加sudo才有效。
2.4. 其他雜項#
防止關閉筆電螢幕進入睡眠。Gnome Tweak在45版後竟把這功能砍了,又因為不想動系統檔案,所以我採用 Fedora論壇用戶建議的作法,把以下target給mask。
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
MicroOS每天會自動更新並重開機,我只好把該systemd服務關掉。
sudo systemctl --now disable transactional-update.timer
3. MicroOS安裝套件的方法#
主要有三種。
MicroOS的套件安裝建議可以看 Richard Brown影片提供的圖。從下圖可知,會動到系統的RPM應儘量避免,改用Flatpak與Distrobox來裝軟體。
MicroOS檔案系統可寫入的範圍有限,只有/home
、/var
,對/etc
的變更會帶入下一次的快照中。如果要額外掛載東西,可能得掛載在var/mnt
目錄下。
transactional-update#
中文叫做事務型/交易型更新,這個指令負責系統更新、系統回滾、安裝系統套件、更新GRUB的工作。
全部系統更新指令是dup。不要用GNOME Software(PackageKit)更新。
sudo transactional-update dup
MicroOS安裝系統套件最好用sudo transactional-update pkg install "套件名稱"
,它會呼叫Zypper安裝傳統RPM套件,指令格式類似Zypper。
每安裝一個新套件後就會製作新快照,要重開機到新的快照才能套用變更。這樣做的好處是安裝更新不會影響目前正在執行的系統。
所以如果有大量軟體要安裝,最好一次跑完,否則分開裝可能會遇到套件庫沒完成加入的狀況。只有最後製作的快照會在開機後有效。
安裝軟體的時候最好瞄一下輸出結果,因為如果軟體安裝失敗,則此指令會拋棄新製作的快照,維持系統原樣。
使用--continue
參數在安裝套件的時候使用最新快照來製作,而非目前開機的快照。
sudo transactional-update apply
可以免重開機,直接套用新快照。但是舊行程要手動重新啟動。我覺得這樣不如直接重開機要好。
sudo transactional-update rollback "數字"
:回退到舊版快照,只會還原系統檔案,家目錄檔案會保留,適合你把系統搞崩又無法復原的時候使用。
sudo transactional-update cleanup
可刪除舊快照與overlay,釋出儲存空間。
使用sudo transactional-update shell
進入最新快照的shell,此時系統會暫時解除root唯讀機制,就可以任意修改系統檔案。
Flatpak#
這是一種打包格式,提供免root安裝以及沙盒權限管理。許多常見的Linux圖形程式都可以用Flatapk格式安裝。
MicroOS內建的Flatpak預設就是安裝給user了,並且使用Flathub作為遠端儲存庫,不用特別設定。GNOME Software開啟就可以瀏覽程式。
Distrobox#
Distrobox是方便使用者存取其他Linux發行版套件的工具,連圖形程式都可以裝。
此處後端是搭配MicroOS內建的Podman,Podman功能跟Docker非常相似,又因其支援rootless mode,適合在immutable distro安裝。
非root權限的容器拉取映像檔可能會有網路問題,此時可以用podman pull
預先拉取Linux發行版的映像檔,再用Distrobox建立Linux容器。
方便存取Distrobox的作法是使用distrobox export
建立捷徑,這樣點選捷徑就會進入開發環境的終端機,而不會跟系統的攪混。
4. 與Fedora Silverlblue的比較#
類似MicroOS的Linux發行版有 Fedora Silverblue,二者同樣受企業贊助開發。
openSUSE Aeon對應Fedora Silverblue,openSUSE Kalpa對應Fedora Kinoite。
但MicroOS跟Fedora Silverblue原理不太一樣,MicroOS依賴BTRFS本身機制製作快照,Fedora SilverBlue使用os-tree。ostree優勢在於可以詳細追蹤使用者變更(就像git儲存庫一樣)
MicroOS是跟隨openSUSE Tumbleweed發表的滾動發行版,而Fedora Silverblue的更新時程跟著Fedora Workstation走。
以前MicroOS跟Fedora Silverblue一樣使用Toolbox當容器工具,最近MicroOS改成了功能更多的Distrobox。