手机平板安装可视化linux

5k words

在termux中安装Ubuntu和桌面环境


1.工具准备

需要的工具

需要两个软件,termuxtermux-x11
termux本质也是一个linux系统,是一个终端模拟系统,可以在类linux环境中运行一些命令
termux-x11 为termux提供可视化,可以让termux运行可视化程序
termux官方Github界面
termux-x11官方Github界面

只要这两个软件就能实现,下载一个符合你设备的版本。

2.Ubuntu安装

在安装好termux和termux-x11之后,打开 termux

2.1允许存储权限

在termux中输入

1
2
pkg install termux-am //安卓14需要额外运行这一句,不过不是14多运行这句话也没影响
termux-setup-storage

这句话是为了让 termux 可以访问手机系统存储权限,弹出弹窗点同意访问设备存储

2.2换源

国内访问一些网站速度太慢,为了下载一些技术软件国内有一些高校,企业等有镜像源,比如说清华源,阿里源等
termux 输入

1
termux-change-repo

进入这样的一个界面

d3f810b7d32757c580c25c7c246298d

如果有外接键盘点回车,没有下面有软键盘,点回车
然后进入下一个界面,有很多源,选择清华源

881dad648065568c22e99ca18663722

空格星号 定位到清华源上了,然后点 回车

等待换源结束。

2.3安装必要的前置项

在换源成功后,对apt进行更新

1
2
apt upgrade
apt update

apt是Ubuntu上安装,更新,管理和删除deb软件包的工具,简单来说就是Ubuntu上软件的管理器
在更新和上传完apt之后,如果我们在换源,会发现在 main repository 下面出现了一个 single repository ,如果我们再进入 main repository ,会发现变成了什么Chinese mainland,Asia 什么的,single repository里面变成了许多,像清华源,阿里源,南京大学源,中科大源什么的
这里实际上就是,如果你选single那个选项,它给你用指定的那个源,换清华源就只用清华的。但是如果换成main repository,它会用属于这个源组里面的最优源,比如说然后换成中国大陆的源,它会自动选择清华的源,或者阿里的源,等等

在apt更新完成后,输入

1
2
3
apt install x11-repo -y
apt install termux-x11-nightly -y
apt install pulseaudio -y

如果apt出问题,可以用pkg命令, pkg update -y ,然后把上面命令的 apt 换成 pkg
这三个命令是在termux配置termux-x11的环境, pulseaudio 是音频配置

2.4下载Ubuntu

首先需要一个容器来放ubuntu,下载 proot-distro

1
2
apt install proot-distro
apt install proot-distro install ubuntu

下载时间有点长,网上说最好不用校园网,但是1个人测试,校园网在下载这个的时候比流量好用
可以根据自己的情况来选择用哪个

Ubuntu下载完毕之后,输入

1
proot-distro login ubuntu

这样就成功进入ubuntu了

3.配置桌面

下面有是在Ubuntu里面进行继续安装,如果你想要有一些中文提示,可以先看下面关于Ubuntu更换中文环境的环节

3.1换源

login ubuntu 之后,输入

1
nano /etc/apt/source.list

把原本内容给用 # 注释掉,在下面添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
deb https://mirrors.aliyun.com/ubuntu-ports/ noble main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ noble main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu-ports/ noble-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ noble-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu-ports/ noble-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ noble-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu-ports/ noble-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ noble-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu-ports/ noble-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ noble-backports main restricted universe multiverse

Ctrl + S 保存, Ctrl + X 退出

3.2安装xfce4

在Ubuntu里面继续输入

1
apt install -y xfce4

这个也需要很长时间,等待出现选择键盘类型,选择中国Chinese,编号应该是20
接着出现keyboard layout,选择汉语拼音字母 Hanyu Pinyin letters,应该是2

等待下载结束

3.3设置中文环境和时区

输入

1
2
echo $LANG //检查有没有中文环境,如果没有输入下面的
nano /etc/locale.gen

滑到最下面,如果有 zh_CN.UTF-8 UTF-8 把前面的 # 删除,没有则添加

修改完保存 ,输入

1
local-gen

生成中文环境,继续输入

1
nano /etc/locale.conf

在里面添加

1
LANG=zh_CN.UTF-8

保存退出

继续输入

1
nano /etc/environment

在最下面加

1
2
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

保存退出

接下来继续输入

1
export LANG=zh_CN.UTF-8

最后,输入

1
nano /etc/bash.bashrc

在后面加入

1
export LANG=zh_CN.UTF-8

保存退出

时区修改就简单的多

1
ln -sf /usr/share/zoneinfo/Asia/Shanghai/etc/localtime

可以输入 date 检查一下时间是否正确

3.4启动桌面

在执行这一步之前,来解释一些内容
之前说过termux,也是一个类似的linux,所以即使我们不安装 proot-distro 和 Ubuntu ,在下载好环境的情况下,我们依然可以启动桌面,系统是termux里面改版的linux
同时,如果把ternux-x11的环境加在Ubuntu里面依然可以,但是本来就在一个容器环境里面了,所以选择把桌面内容安在容器外面可以减少资源压力
官方给的手册里面写了,我们只要在proot参数加入 –shared-tmp 就行

所以,首先
如果现在还在Ubuntu的环境里面,需要先退出来,输入

1
exit

就能退出

首先打开 termux-x11 在后台放着
在termux终端输入

1
termux-x11 :0 >/dev/null &

termux-x11 :0 是在0号口开一个进程,和 termux-x11 进行通讯,下面你输入的口也要对应
“>/dev/null” 是重定向,清空前面的日志,& 是为了能继续输入下面的内容

输入

1
proot-distro login ubuntu --shared-tmp -- /bin/bash -c 'export GTK_IM_MODULE=fcitx && export QT_IM_MODULE=fcitx && export XMODIFIERS=@im=fcitx && export DISPLAY=:0 && startxfce4'

– /bin/bash -c: 使用ubuntu环境去执行后续命令,后续命令通过单引号囊括

export GTK_IM_MODULE=fcitx && export QT_IM_MODULE=fcitx && export XMODIFIERS=@im=fcitx 防止出现输入法问题

export DISPLAY=:0 && startxfce4 中 export 就是设置输出口,startxfce4就是启动桌面环境

这样,我们就可以在termux-x11里面看到桌面了

4.其他问题

上面的步骤基本上实现了ubuntu系统启动桌面,但是依然有一些问题

4.1突然闪退

会发现,没用两下,termux-x11 突然黑屏,然后termux出现信号9,回车之后termux就关了,这是因为termux进入后台后,手机为了省电,会限制电池用量,会把程序掐了,只要在设置里面把电池用量改成无限制就行,可能需要打开开发者模式( 不是root,不是root,不是root )

4.2端口问题

如果你退出ubuntu之后,虽然不显示了,但是比如termux-x11 :0,0这个端口还被占用,子进程还在运行,下一次再用termux-x11 :0 >/dev/null,会出错,把这个进程结束一下就行

4.3脚本快速打开

如果每次输入这些内容,实在是太麻烦了,可以通过加入脚本来快速启动

1
2
cd $PATH
nano tu

cd 到 PATH 里面,在里面写脚本就可以加入路径里面了,可以直接使用
脚本名是tu,可以起其他的,用的时候输入设置的名字就行

在脚本里面写入

1
2
3
4
5
kill -9 $(pgrep -f "termux.x11") 2>/dev/null
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity > /dev/null
termux-x11 :0 >/dev/null &
proot-distro login ubuntu --shared-tmp -- /bin/bash -c 'export GTK_IM_MODULE=fcitx && export QT_IM_MODULE=fcitx && export XMODIFIERS=@im=fcitx && export PULSE_SERVER=127.0.0.1 && export XDG_RUNTIME_DIR=${TMPDIR} && export DISPLAY=:0 && startxfce4'
kill -9 $(pgrep -f "termux.x11") 2>/dev/null

保存退出之后,输入

1
chmod +x tu

添加权限

之后在终端直接输入tu,就可以进入桌面了


文章参考

草履虫也能学会:在termux中使用proot-distro安装ubuntu与桌面环境