本篇文章將驗證「最小」的Linux發行版之一是否能作為日常桌面系統使用,包括使用非傳統的Flatpak方式來設定中文注音輸入法。
Alpine Linux是一個體積很小的Linux發行版,主打給嵌入式設備使用,docker鏡像更是只有3MB,甚至可以在RAM執行。目前支援x86和ARM架構。
Alpine Linux預設的shell是ASH,init是OpenRC,套件管理員為APK。
因為小容量、啟動快速的特性,被應用在iOS的 iSH Shell裡面當作基本系統,甚至還有讓舊款手機變身成Linux手機的衍生發行版: postmarketOS。
不過Alpine使用比較少見的musl作為C函式庫以增進安全性,導致多語種顯示會出問題,執行部份依賴glibc程式會出現錯誤(例如Nvidia專有驅動),頂多只有 glibc相容層。且套件之間為保持簡潔依賴性比較低,所以安裝某些東西會分成很多個指令。
儘管如此,Alpine Linux同樣可以安裝成一個含有圖形環境的桌面作業系統。Alpine Linux開發者提供了一系列便捷指令稿方便我們安裝系統。
1. 安裝Alpine Linux基本系統#
到 官網下載x86_64架構的ISO,選擇Standard版本
開機只會有tty畫面,輸入
root
登入系統。輸入
setup-alpine
執行安裝系統指令稿,此安裝系統指令稿不會安裝任何圖形界面。接著會問一系列問題:
# 鍵盤配置
Select keyboard layout: [us]
Select variant: [us-alt-int]
# 主機名稱
Enter system hostname: [alpine]
# 啟用網路界面
Which one do you want to initialize? [eth0]
# 使用DHCP
Ip address for eth0? [dhcp]
Do you want to do any manual netowrk configuration? [n]
# 設定Root密碼
New password:
#設定時區
Which timezone are you in? [Asia/Taipei]
#是否設定代理伺服器
HTTP/FTP proxy URL? [none]
# 啟用community套件庫
Enter mirror number: [c]
# 讓Alpine自動抓取速度最快的套件庫站點
Enter mirror number: [f]
# 新增一般使用者帳號"ivon"和設定密碼
Setup a user? [ivon]
New password for ivon:
# 跳過新增SSH金鑰
Enter ssh key or URL for ivon: [none]
# 安裝OpenSSH伺服器
Which ssh server? [openssh]
# 將系統安裝至硬碟,Alpine會自動安裝GRUB
Which disk would you like to use? [sda]
How would you like to use it? [sys]
WARNING: Erase the above disk(s) and continue? [y]
安裝完成之後輸入
poweroff
關機,退出ISO。安裝後開機進入系統,登入
root
帳號。然後執行
apk update && apk upgrade
更新套件庫。安裝sudo
apk add sudo
- 執行
visudo
,啟動vi,在root ALL=(ALL:ALL) ALL
下面加入字串,將一般使用者加入sudo
ivon ALL=(ALL:ALL) ALL
- 輸入
reboot
重開機。再改用一般使用者帳號登入系統。
2. Alpine安裝圖形界面#
- 用指令稿安裝X伺服器和XFCE4桌面環境
sudo setup-xorg-base
sudo setup-desktop
## 輸入xfce
- 安裝中文字體、musl locales、Flatpak、PulseAudio
sudo apk add vim font-noto-cjk musl-locales flatpak firefox pulseaudio pulseaudio-alsa
- 將桌面環境所需的服務加入開機自動啟動
sudo rc-update add dbus
sudo rc-update add udev
sudo rc-update add lightdm
- 用vim編輯
/etc/environment
,設定系統語言為中文
LANG=zh_TW.UTF-8
LC_CTYPE="zh_TW.UTF-8"
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_COLLATE="zh_TW.UTF-8"
LC_MONETARY="zh_TW.UTF-8"
LC_MESSAGES="zh_TW.UTF-8"
LC_PAPER="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"
LC_ALL=
- 用一般使用者帳號登入XFCE桌面,再用Flatpak安裝Fcitx5
flatpak remote-add --user flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install org.fcitx.Fcitx5 org.fcitx.Fcitx5.Addon.ChineseAddons org.fcitx.Fcitx5.Addon.Chewing
- 編輯
/etc/environment
,設定Fcitx5環境變數
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
- 編輯
~./profile
,加入以下參數,並設定Fcitx5登入桌面自動啟動:
flatpak run org.fcitx.Fcitx5 &
- 重開機,之後系統匣就會出現新酷音輸入法圖示,按CTRL+空白鍵切換,按CTRL+SHIFT+F啟用繁簡轉換。至此,裝完系統約只佔用3GB。然而很多程式因為musl預設只會認到英文版語言, glibc相容層似乎也沒什麼幫助。