Ubuntu是著名的Linux發行版,除了在電腦上使用外,Android裝置同樣能以Termux Proot容器技術,免Root權限安裝Linux發行版。
以下採用的懶人方案是"Udroid",相較於 手動打proot-distro指令,這個版本的Linux安裝過程只需要幾行指令,會幫你安裝好一個Ubuntu 22.04 LTS系統,內建瀏覽器和文書軟體。桌面環境有GNOME、XFCE、Mate可選擇。
因為Termux本身是純文字界面,安裝好Ubuntu不啟動圖形環境,純粹跑程式指令稿也是可以的。
另請參見: 手動設定proot Ubuntu
1. 前置條件#
要跑Udroid手機需要至少4GB RAM,圖形界面至少6GB。儲存空間需準備10GB。
安裝Termux和VNC Viewer。Udroid似乎不相容Termux X11的樣子。
安裝Termux: Termux使用教學: 在Android手機上執行Linux指令
安裝 AVNC Viewer
2. 執行Udroid安裝指令稿#
- 開啟Termux,設定自動啟動音訊伺服器
echo 'pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1' > ~/.profile
echo 'pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1' > ~/.profile
- 複製這幾行指令,於Termux長按貼上,Enter,等待2GB檔案下載完成安裝、解壓縮。對,Udroid真的蠻肥的。
pkg install git
git clone https://github.com/RandomCoderOrg/fs-manager-udroid
cd fs-manager-udroid
bash install.sh
udroid install jammy:xfce4
udroid login jammy:xfce4
之後會自動登入,一開始可能會遇到zsh問要不要更新,輸入y等它跑完。等提示符變成
~
代表已經進入純文字模式的proot Ubuntu啦,試著使用apt update
指令更新套件清單吧。Udroid預設是登入root,一般使用者帳號要自己建:
apt install openssl
username="user"
password="在這裡輸入自訂密碼"
useradd -m \
-p "$(openssl passwd -1 ${password})" \
-G sudo \
-d /home/${username} \
-k /etc/skel \
-s /bin/bash \
$username
- 不過Udroid的一般使用者會出現
The "no new privileges" flag is set
錯誤,需重裝sudo解決:
apt reinstall sudo
3. 設定時區、中文、輸入法、停用Snap#
- 設定時區為台灣台北
sudo ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
- 安裝locales、Fcitx5輸入法、中文字體
sudo apt install locales fcitx5* fonts-noto fonts-noto-cjk
- 生成中文
sudo locale-gen zh_TW
sudo locale-gen zh_TW.UTF-8
sudo dpkg-reconfigure locales
sudo update-locale LANG="zh_TW.UTF-8" LANGUAGE="zh_TW"
- 用VIM編輯
.profile
vim ~/.profile
- 加入以下內容,設定語言為正體中文,並指定輸入法使用Fcitx5。設定登入後自動啟動Fcitx5和PulseAudio
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=
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
export PULSE_SERVER=tcp:127.0.0.1
- 最後,停用Snap,因為Proot環境Snap無法運作
sudo apt purge snapd
sudo cat <<EOF | sudo tee /etc/apt/preferences.d/nosnap.pref
Package: snapd
Pin: release a=*
Pin-Priority: -10
EOF
4. 啟動桌面環境#
- 變更root密碼
passwd root
- 變更VNC密碼
vncpasswd
輸入
startvnc
指令啟動VNC伺服器開啟AVNC Viewer,連線IP輸入
localhost:5900
,即會看到桌面。關閉AVNC Viewer,回到Termux,輸入
stopvnc
停止輸出。
5. 登入Udroid,不啟動桌面環境#
開啟Termux輸入指令登入即可:
udroid login jammy:xfce4