之前也写过如何在手机上安装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,执行:
apt install -y novnc python3-websockify
安装过程可能需要一些时间,安装完成后执行:
websockify -D --web=/usr/share/novnc/ 端口号 localhost:5900
注:需要将命令中端口号
替换成实际端口,这个端口将是后面网页连接远程桌面端口
我们可以在/root
(即~
)目录下创建一个noVNC.sh
(或者其他你喜欢的名字),填入以下内容:
#!/bin/sh
websockify -D --web=/usr/share/novnc/ 端口号 localhost:5900
执行chmod +x
使脚本可执行,下次重启时只需执行脚本就可以了,这样会方便一些。
如果安装时配置了初始化,则可以在/etc/rc.local
中加上一行脚本的绝对路径,这样每次启动时noVNC就会自动启动了
执行脚本后noVNC便已经运行起来了,我们可以使用浏览器访问设备IP:端口号/vnc.html
登录远程桌面,默认密码是Linux的root密码,也可以执行vncpasswd
进行修改
登录后我们会发现这个远程桌面无法正常显示中文,如图:
只需在SSH中执行:
apt install -y fonts-wqy-microhei fonts-wqy-zenhei xfonts-intl-chinese
安装一下中文字库,装好后在Linux Deploy中依次点击下方的停止
和启动
重启Linux环境,此时再次连接可以发现中文已经可以正常显示了
附:LXDE 回收站位置:~/.local/share/Trash
,清空回收站执行:
rm -rf ~/.local/share/Trash/*
常用软件安装
由于我对这个远程桌面的需求是能够远程回家中内网看设备的状态,偶尔挂个QQ,所以目前只装了IBus输入法、Chromium(即Google Chrome浏览器)、QQ和VSCode,下面将讲解如何安装这些软件,后面如果有其它用到的软件也会将安装过程更新在这里。
由于手机毕竟不是为运行Linux发行版而生,各个程序的安装和运行步骤可能与Linux环境不同,不过参照下面的安装过程,安装并能够运行基本不成问题。
IBus中文输入法
SSH连接Linux系统,执行:
apt install -y zenity ibus ibus-pinyin im-config
注:不装zenity
无法打开im-config
装好后,在VNC中点击左下角菜单 – 首选项 – 输入法,在弹出窗口点击确定,如图
在弹出窗口点击是,如图
在弹出窗口中选择IBus,点击确定,如图
在弹出窗口中点击确定,如图
然后需要对~/.bashrc
进行修改,执行:
nano ~/.bashrc
在后面添加:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
然后保存退出即可,不加的话输入中文时可能不弹候选框。
由于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
,执行:
apt install -y dbus-x11
安装dbus-x11
即可。
我们需要为输入法配置自启动,执行:
nano /etc/xdg/lxsession/LXDE/autostart
在最后一行添加:
@ibus-daemon &
添加完成后保存退出,然后重启Linux系统,继续对输入法进行配置。点击左下角菜单 – 首选项 – IBus首选项
进入IBus首选项页面,我们可以按需 修改输入法切换快捷键,(但似乎在noVNC中不起作用,或许直接用VNC连接有效?)
点击“输入法”切换到输入法菜单可以添加/修改/删除输入法(默认已包含中文拼音输入法),具体操作如图:
添加后可以点击右下角关闭按钮后再次打开查看设置是否成功保存,正常来讲安装好dbus-x11
后设置应能正常保存,如发现不能正常保存也可关闭IBus首选项窗口,点击左下角菜单 – 系统工具 – LX 终端启动LXTerminal,执行ibus-setup
,这样配置输入法过程中产生的警告/报错信息都会在终端中显示出来,方便排查问题。
注意:连接VNC后如果右下角没有输入法图标则需要点击左下角菜单 – 首选项 – IBus首选项启动输入法进程
浏览器
Chromium
SSH连接Linux系统(或在VNC中打开LXTerminal),执行:
apt install -y chromium
安装好后在VNC中点击左下角菜单 – 系统工具 – 文件管理器PCManFM
依次点击应用程序 – 互联网
会出现刚刚安装的Chromium浏览器的快捷方式,右键快捷方式 – 文件属性
点击桌面项,在命令
框中的chromium
后、%U
前添加--no-sandbox
,修改后的命令框中内容为:
/usr/bin/chromium --no-sandbox %U
完成后点击确定保存。可以复制一份快捷方式放在桌面方便使用。运行时如果弹出如下窗口:
只需点击执行按钮即可。
Firefox
使用浏览器打开Firefox Nightly下载页面,点击下载Firefox浏览器
下载后使用scp
将浏览器文件上传至Linux系统,执行:
scp -P 自定义SSH端口号 浏览器文件位置 用户名@IP:目标位置
使用方法:假如我的IP地址为127.0.0.1
,端口号为6666
,用户名为local
,浏览器文件位置在/home
,下载的浏览器文件名为firefox-134.0a1.zh-CN.linux-aarch64.tar.bz2
那么我将执行:
scp -P 6666 /home/firefox-134.0a1.zh-CN.linux-aarch64.tar.bz2 local@127.0.0.1:~/
如果信息填写正确,执行后应当提示输入密码,输入后会显示上传进度,如图所示:
使用SSH连接Linux系统(或在VNC中打开LXTerminal),逐行执行:
apt install -y bzip2
tar xjf firefox-134.0a1.zh-CN.linux-aarch64.tar.bz2
解压完成后将得到一个firefox
的文件夹,执行:
mv firefox /opt
将解压的 Firefox 目录移到 /opt
,继续执行:
ln -s /opt/firefox/firefox /usr/local/bin/firefox
创建一个指向 Firefox 可执行文件的 symlink
,然后逐行执行:
mkdir /usr/local/share/applications/
nano /usr/local/share/applications/firefox.desktop
填入以下内容(原文件链接):
[Desktop Entry]
Version=1.0
Name=Firefox Web Browser
Comment=Browse the World Wide Web
GenericName=Web Browser
Keywords=Internet;WWW;Browser;Web;Explorer
Exec=firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/opt/firefox/browser/chrome/icons/default/default128.png
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
StartupNotify=true
然后保存退出,重启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),逐行执行:
cd Downloads/
apt install -y ./QQ_3.2.13_241023_arm64_01.deb
在安装的结尾可能会报错,忽略即可,如图:
此时已经安装完成。我们继续对快捷方式进行处理。在VNC中点击左下角菜单 – 系统工具 – 文件管理器PCManFM
依次点击应用程序 – 互联网
会出现刚刚安装的QQ的快捷方式,右键快捷方式 – 文件属性
点击桌面项,在命令
框中的qq
后、%U
前添加--no-sandbox
,修改后的命令框中内容为:
/opt/QQ/qq --no-sandbox %U
完成后点击确定保存。可以复制一份快捷方式放在桌面方便使用。运行时如果弹出如下窗口:
只需点击执行按钮即可。
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系统中。依次执行:
wget -O libxkbfile1.deb http://ftp.cn.debian.org/debian/pool/main/libx/libxkbfile/libxkbfile1_1.1.0-1+b2_arm64.deb
apt install -y ./libxkbfile1.deb
在安装的结尾可能会报错,忽略即可,如图:
此时已经安装完成。我们再去安装VSCode,依次执行:
cd Downloads/
apt install -y ./code_1.95.1-1730354713_arm64.deb
在安装过程中会弹出这样的提示:
点击回车即可。
在安装的结尾可能会报错,忽略即可,如图:
此时已经安装完成。我们继续对快捷方式进行处理。在VNC中点击左下角菜单 – 系统工具 – 文件管理器PCManFM
依次点击应用程序 – 编程
会出现刚刚安装的VSCode的快捷方式,右键快捷方式 – 文件属性
点击桌面项,在命令
框中的code
后、%F
前添加--no-sandbox
,修改后的命令框中内容为:
/usr/share/code/code --no-sandbox %F
完成后点击确定保存。可以复制一份快捷方式放在桌面方便使用。运行时如果弹出如下窗口:
只需点击执行按钮即可。
另:这样安装的VSCode的美化需要用到的workbench.desktop.main.css
位置为:
/usr/share/code/resources/app/out/vs/workbench
Python
系统自带一个Python3.7(没有可以执行apt install -y python3
),本教程为编译安装比较新的Python版本
分两种情况:
- 有浏览器:打开浏览器,输入
python.org
,到Python官网下载Python源码 - 没有浏览器:在电脑上打开浏览器,输入
python.org
,到Python官网下载Python源码,然后使用scp
传入Linux系统
教程以有浏览器为例,根据图示下载Python源码:
下载好后执行:
apt install -y xz-utils && tar -xJvf Python-3.13.0.tar.xz
进行解压,解压完成后使用cd命令进入Python文件夹:
cd Python-3.13.0/
执行配置:
./configure --enable-optimizations
如果出现报错:
configure: error: no acceptable C compiler found in $PATH
则需要先执行:
apt install -y build-essential pkg-config
安装编译工具后再执行配置
配置完成后,执行:
make -jN && make altinstall
注意:-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),执行:
apt install -y xfce4-screenshooter
使用时,只需在VNC中打开LXTerminal,执行:
xfce4-screenshooter
当然,也有消除警告的方法,只需执行:
apt install -y at-spi2-core
MySQL
(挺无语的,默认密码一开始进不去,以为默认密码不行,就研究强制改root密码,反复安装了十几次,索性就给安装和卸载弄成自动化了,然后后来又能用了)
注意:安装脚本仅在Debian arm64环境进行测试,不支持其它架构环境(没做,没有需求)
SSH连接Linux环境,执行:
apt install -y curl && bash <(curl -fsSL https://llyth.cn/api/sh/install_mysql.sh)
脚本执行过程中会自动安装依赖、自动下载MySQL压缩包,无需人工干预,只需在最后设置一个新的root密码就行了,然后根据提示执行source ~/.bashrc
不用了想要删除也很方便,执行:
apt install -y curl && bash <(curl -fsSL https://llyth.cn/api/sh/remove_mysql.sh)
就会自动删除MySQL。
Nginx 和 PHP
同样使用安装脚本进行安装。
注意:安装脚本仅在Debian arm64环境进行测试,理论来讲应该支持其它架构的Debian/Ubuntu,如需使用请自行测试。
SSH连接Linux环境,执行:
apt install -y curl && bash <(curl -fsSL https://llyth.cn/api/sh/install_nginx.sh)
安装过程中可根据需要自行决定是否安装PHP
如果使用PHP,需要在安装完成后自行去/usr/local/nginx/conf/nginx.conf
调整配置
如需删除Nginx,只需执行:
apt install -y curl && bash <(curl -fsSL https://llyth.cn/api/sh/remove_nginx.sh)
安装的PHP也可以根据删除脚本后面的提示一并删除。
phpMyAdmin
同样使用安装脚本进行安装。
注意:请先使用Nginx安装脚本安装Nginx。
SSH连接Linux环境,执行:
apt install -y curl && bash <(curl -fsSL https://llyth.cn/api/sh/install_phpmyadmin.sh)
附上卸载脚本:
apt install -y curl && bash <(curl -fsSL https://llyth.cn/api/sh/remove_phpmyadmin.sh)
一种很新的玩法
随手记一下,不作为玩机指导
正常安装具有VNC的Linux环境后,执行两次:
bash <(curl -sSL https://raw.githubusercontent.com/wikihost-opensource/linux-toolkit/main/system-upgrade/debian.sh)
每次执行没有报错的情况重启,两次过后停止Linux环境,点击右上角配置,完成后启动Linux环境,此时会变成Debian 12:
然后使用:
dpkg-reconfigure locales
配置zh_CN.UTF-8,完成后重连ssh
nano /etc/apt/sources.list
里面内容全注释,新增:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
然后再安装上面的noVNC和其他软件,会减少许多问题,也能安装更高版本的软件(比如Chromium)。
本文地址: Linux Deploy安装桌面环境