之前也写过如何在手机上安装Linux虚拟机环境,让旧手机发挥余热,但上一篇主要是作为内网环境中的Linux云服务器跑一些网站、服务用,本篇就接着上一篇继续讲如何安装桌面环境,安装常用软件、输入法,以及配置浏览器可以访问的VNC服务(noVNC)。
注意:由于手机毕竟不是为运行Linux发行版而生,一些操作步骤可能与正常的Linux环境有所不同,但只要参照本文步骤,将功能大致运行起来基本不成问题。
没有看过上一篇的可以点击下面的链接直达:
准备工作
本教程主要用到以下东西:
- 已root安卓手机一台
- Linux Deploy(点击下载、GitHub下载、ApkCombo下载、APKPure下载)
- Termux(作为SSH工具,不是刚需,建议用电脑)(点击下载)
本教程基于已装好Linux环境编写,如未安装请参照上面文章先安装Linux环境,也可参照本文在安装前一并对Linux Deploy配置进行调整后再安装Linux环境。
文中使用的设备型号:
- Le X620 3+16G Android 6.0
Linux Deploy配置调整
打开Linux Deploy,点击右下角按钮进入设置页面,划到最下面找到图形界面,勾选允许使用图形环境
,如图所示(感觉桌面环境MATE更好看一点,且安装MATE桌面环境后面可以少装一些包,比如dbus
、zenity
等,本文基于LXDE桌面环境编写)

点击图形界面设置,可根据自己需要调整以下选项:
- DPI:96(100%)、120(125%)、144(150%)、192(200%)
- 宽度:1920
- 高度:1080
调整如图所示:

完成后返回至Linux Deploy主页面,点击右上角三个点,点击配置
,在弹出窗口点击确认
,并等待配置完成。

配置完成后依次点击下方的停止
和启动
重启Linux环境

至此便完成了对Linux Deploy软件配置的调整。这一步的操作是安装VNC服务和VNC桌面,方面下一步安装noVNC。按理来讲现在只需使用VNC软件输入设备IP:5900
即可连接VNC桌面了,但说到底还是不够方便,我们可以让远程桌面的便携性更进一步,即将远程桌面搬进浏览器。
Linux系统配置
使用SSH连接Linux,执行:
安装过程可能需要一些时间,安装完成后执行:
注:需要将命令中端口号
替换成实际端口,这个端口将是后面网页连接远程桌面端口
我们可以在/root
(即~
)目录下创建一个noVNC.sh
(或者其他你喜欢的名字),填入以下内容:
执行chmod +x
使脚本可执行,下次重启时只需执行脚本就可以了,这样会方便一些。
如果安装时配置了初始化,则可以在/etc/rc.local
中加上一行脚本的绝对路径,这样每次启动时noVNC就会自动启动了

执行脚本后noVNC便已经运行起来了,我们可以使用浏览器访问设备IP:端口号/vnc.html
登录远程桌面,默认密码是Linux的root密码,也可以执行vncpasswd
进行修改

登录后我们会发现这个远程桌面无法正常显示中文,如图:

只需在SSH中执行:
安装一下中文字库,装好后在Linux Deploy中依次点击下方的停止
和启动
重启Linux环境,此时再次连接可以发现中文已经可以正常显示了

附:LXDE 回收站位置:~/.local/share/Trash
,清空回收站执行:
常用软件安装
由于我对这个远程桌面的需求是能够远程回家中内网看设备的状态,偶尔挂个QQ,所以目前只装了IBus输入法、Chromium(即Google Chrome浏览器)、QQ和VSCode,下面将讲解如何安装这些软件,后面如果有其它用到的软件也会将安装过程更新在这里。
由于手机毕竟不是为运行Linux发行版而生,各个程序的安装和运行步骤可能与Linux环境不同,不过参照下面的安装过程,安装并能够运行基本不成问题。
IBus中文输入法
SSH连接Linux系统,执行:
注:不装zenity
无法打开im-config
装好后,在VNC中点击左下角菜单 – 首选项 – 输入法,在弹出窗口点击确定,如图

在弹出窗口点击是,如图

在弹出窗口中选择IBus,点击确定,如图

在弹出窗口中点击确定,如图

然后需要对~/.bashrc
进行修改,执行:
在后面添加:
然后保存退出即可,不加的话输入中文时可能不弹候选框。
由于Linux Deploy搭建的Linux环境中缺少dbus-x11
,导致IBus设置无法保存,具体报错信息如下:
(ibus-setup:12414): dconf-WARNING **: 13:45:45.359: failed to commit changes to dconf: Failed to execute child process “dbus-launch” (No such file or directory)
故还需安装dbus-x11
,执行:
安装dbus-x11
即可。
我们需要为输入法配置自启动,执行:
在最后一行添加:

添加完成后保存退出,然后重启Linux系统,继续对输入法进行配置。点击左下角菜单 – 首选项 – IBus首选项

进入IBus首选项页面,我们可以按需 修改输入法切换快捷键,(但似乎在noVNC中不起作用,或许直接用VNC连接有效?)

点击“输入法”切换到输入法菜单可以添加/修改/删除输入法(默认已包含中文拼音输入法),具体操作如图:

添加后可以点击右下角关闭按钮后再次打开查看设置是否成功保存,正常来讲安装好dbus-x11
后设置应能正常保存,如发现不能正常保存也可关闭IBus首选项窗口,点击左下角菜单 – 系统工具 – LX 终端启动LXTerminal,执行ibus-setup
,这样配置输入法过程中产生的警告/报错信息都会在终端中显示出来,方便排查问题。

注意:连接VNC后如果右下角没有输入法图标则需要点击左下角菜单 – 首选项 – IBus首选项启动输入法进程
浏览器
Chromium
SSH连接Linux系统(或在VNC中打开LXTerminal),执行:
安装好后在VNC中点击左下角菜单 – 系统工具 – 文件管理器PCManFM

依次点击应用程序 – 互联网

会出现刚刚安装的Chromium浏览器的快捷方式,右键快捷方式 – 文件属性

点击桌面项,在命令
框中的chromium
后、%U
前添加--no-sandbox
,修改后的命令框中内容为:
完成后点击确定保存。可以复制一份快捷方式放在桌面方便使用。运行时如果弹出如下窗口:

只需点击执行按钮即可。

Firefox
使用浏览器打开Firefox Nightly下载页面,点击下载Firefox浏览器

下载后使用scp
将浏览器文件上传至Linux系统,执行:
使用方法:假如我的IP地址为127.0.0.1
,端口号为6666
,用户名为local
,浏览器文件位置在/home
,下载的浏览器文件名为firefox-134.0a1.zh-CN.linux-aarch64.tar.bz2
那么我将执行:
如果信息填写正确,执行后应当提示输入密码,输入后会显示上传进度,如图所示:

使用SSH连接Linux系统(或在VNC中打开LXTerminal),逐行执行:

解压完成后将得到一个firefox
的文件夹,执行:
将解压的 Firefox 目录移到 /opt
,继续执行:
创建一个指向 Firefox 可执行文件的 symlink
,然后逐行执行:
填入以下内容(原文件链接):
然后保存退出,重启Linux环境。可以在VNC中查看安装是否成功:点击左下角菜单 – 互联网,可以看到刚刚安装的Firefox浏览器,如图所示


分两种情况:
- 有浏览器:打开Chrome浏览器,输入
im.qq.com
,到QQ官网下载QQ Linux arm64 deb版软件包 - 没有浏览器:在电脑上打开浏览器,输入
im.qq.com
,到QQ官网下载QQ Linux arm64 deb版软件包,然后使用
传入Linux系统scp
教程以有浏览器为例,根据图示下载QQ软件包:


使用SSH连接Linux系统(或在VNC中打开LXTerminal),逐行执行:
在安装的结尾可能会报错,忽略即可,如图:

此时已经安装完成。我们继续对快捷方式进行处理。在VNC中点击左下角菜单 – 系统工具 – 文件管理器PCManFM

依次点击应用程序 – 互联网

会出现刚刚安装的QQ的快捷方式,右键快捷方式 – 文件属性

点击桌面项,在命令
框中的qq
后、%U
前添加--no-sandbox
,修改后的命令框中内容为:
完成后点击确定保存。可以复制一份快捷方式放在桌面方便使用。运行时如果弹出如下窗口:

只需点击执行按钮即可。

VSCode
分两种情况:
- 有浏览器:打开Chrome浏览器,输入
code.visualstudio.com/Download
,到VSCode官网下载VSCode Linux arm64 deb版软件包 - 没有浏览器:在电脑上打开浏览器,输入
code.visualstudio.com/Download
,到VSCode官网下载VSCode Linux arm64 deb版软件包,然后使用
传入Linux系统scp
教程以有浏览器为例,根据图示下载VSCode软件包:

此时虽然已经下载好VSCode安装包,但由于libxkbfile1
版本太低,直接安装会报错,具体报错信息如下:
code : 依赖: libxkbfile1 (>= 1:1.1.0) 但是 1:1.0.9-2+b11 正要被安装
正常来讲应该能够自动安装,但由于镜像源中没有更高版本,故需要手动下载安装。下载地址:点击下载 或 官网下载 或 其他地区源。我们可以直接使用wget
将软件包下载到Linux系统中。依次执行:
在安装的结尾可能会报错,忽略即可,如图:

此时已经安装完成。我们再去安装VSCode,依次执行:
在安装过程中会弹出这样的提示:

点击回车即可。
在安装的结尾可能会报错,忽略即可,如图:

此时已经安装完成。我们继续对快捷方式进行处理。在VNC中点击左下角菜单 – 系统工具 – 文件管理器PCManFM

依次点击应用程序 – 编程

会出现刚刚安装的VSCode的快捷方式,右键快捷方式 – 文件属性

点击桌面项,在命令
框中的code
后、%F
前添加--no-sandbox
,修改后的命令框中内容为:
完成后点击确定保存。可以复制一份快捷方式放在桌面方便使用。运行时如果弹出如下窗口:

只需点击执行按钮即可。

另:这样安装的VSCode的美化需要用到的workbench.desktop.main.css
位置为:
体验优化
刚安装好的VSCode在体验上可能与PC端有所差别,我们可以通过调整部分设置优使用化体验。点击左上角文件 – 首选项 – 设置

首先调整字体,将字体调整为:



然后在搜索框中搜索keyCode
,将按键控制逻辑修改为keyCode
,如图

完成后重启VSCode。
Python
系统自带一个Python3.7(没有可以执行apt install -y python3
),本教程为编译安装比较新的Python版本
分两种情况:
- 有浏览器:打开浏览器,输入
python.org
,到Python官网下载Python源码 - 没有浏览器:在电脑上打开浏览器,输入
python.org
,到Python官网下载Python源码,然后使用scp
传入Linux系统
教程以有浏览器为例,根据图示下载Python源码:

下载好后执行:
进行解压,解压完成后使用cd命令进入Python文件夹:
执行配置:
如果出现报错:
configure: error: no acceptable C compiler found in $PATH
则需要先执行:
安装编译工具后再执行配置

配置完成后,执行:
注意:-jN
的N
需要替换成核心数量,具体数量可以执行nproc
查看

可能出现的报错内容及解决方法:
zipimport.ZipImportError: can't decompress data; zlib not available
:
执行apt install -y zlib1g-dev
,然后从配置步骤重新执行
编译安装完成后,可以使用python3.13
命令进入刚刚编译安装的Python3.13


截图工具
SSH连接Linux系统(或在VNC中打开LXTerminal),执行:
使用时,只需在VNC中打开LXTerminal,执行:

当然,也有消除警告的方法,只需执行:

MySQL
(挺无语的,默认密码一开始进不去,以为默认密码不行,就研究强制改root密码,反复安装了十几次,索性就给安装和卸载弄成自动化了,然后后来又能用了)

注意:安装脚本仅在Debian arm64环境进行测试,不支持其它架构环境(没做,没有需求)
SSH连接Linux环境,执行:
脚本执行过程中会自动安装依赖、自动下载MySQL压缩包,无需人工干预,只需在最后设置一个新的root密码就行了,然后根据提示执行source ~/.bashrc

不用了想要删除也很方便,执行:
就会自动删除MySQL。
Nginx 和 PHP
同样使用安装脚本进行安装。
注意:安装脚本仅在Debian arm64环境进行测试,理论来讲应该支持其它架构的Debian/Ubuntu,如需使用请自行测试。
SSH连接Linux环境,执行:
安装过程中可根据需要自行决定是否安装PHP

如果使用PHP,需要在安装完成后自行去/usr/local/nginx/conf/nginx.conf
调整配置


如需删除Nginx,只需执行:
安装的PHP也可以根据删除脚本后面的提示一并删除。
phpMyAdmin
同样使用安装脚本进行安装。
注意:请先使用Nginx安装脚本安装Nginx。
SSH连接Linux环境,执行:
附上卸载脚本:

一种很新的玩法
随手记一下,不作为玩机指导

正常安装具有VNC的Linux环境后,执行两次:
每次执行没有报错的情况重启,两次过后停止Linux环境,点击右上角配置,完成后启动Linux环境,此时会变成Debian 12:

然后使用:
配置zh_CN.UTF-8,完成后重连ssh
里面内容全注释,新增:
然后再安装上面的noVNC和其他软件,会减少许多问题,也能安装更高版本的软件(比如Chromium)。
本文地址: Linux Deploy安装桌面环境