2022.08更新
termux官方已提供termux/proot-distro: An utility for managing installations of the Linux distributions in Termux. (github.com)工具,可以前往github站点查看项目详情,可以快速安装linux,以下教程为归档。
安装termux
termux官网:Termux
下载页面:Termux | F-Droid - Free and Open Source Android App Repository
下载termux安装包并安装
测试termux是否能正常使用
修改termux源
由于termux软件源为自己搭建所以不与其他软件源通用
在较新版本的termux中,新增termux-change-repo
命令。在竖屏情况下执行此命令(不知为何横屏无法成功显示页面),会跳转到一个ui中,使用方向键和空格键进行光标移动和选中,回车键为OK
按下回车键后会跳转到选择镜像源界面,我选择的是清华源(Mirrors by Tsinghua),然后按下回车保存配置。
实际上点击屏幕选择也是可以的
等待源更新。
安装Anlinux
下载页面:AnLinux | F-Droid - Free and Open Source Android App Repository
下载anlinux安装包并安装
注:Google play store也提供anlinux的app
在Anlinux中配置即将安装的linux
博主打算安装debian,其它系统安装方式同理
点击仪表盘中的选择
按键,选中Debian
,点击确定。随后会在第二部出现可复制的指令,点击复制按键。
注意:在执行指令时切勿切换目录
在termux中安装linux
将复制到的文本粘贴到termux中并执行。正常情况(网络正常,设备正常的情况)下,在等待后即可完成安装。但是由于各种原因(github在国内无法正常访问或是termux不好代理访问github),以下步骤为分析并修改脚本来达到成功安装linux的目的。
分析指令
pkg install wget openssl-tool proot -y
即安装wget,openssl-tool,proot
wget https://raw.githubusercontent.com/EXALAB/Anlinux-Resources/blob/master/Scripts/Installer/Debian/debian.sh
下载debian.sh,由于raw.githubusercontent.com的dns似乎已经被污染的缘故,无法直接访问。因此博主访问Anlinux-Resources/debian.sh at master · EXALAB/Anlinux-Resources (github.com)
通过一些镜像了github的网站下载了下来。
bash debian.sh
执行脚本
解析debian.sh脚本
在第11-26行,执行指令dpkg --print-architecture
并进行判断。在我的手机上的termux执行本指令后,打印aarch64
,故本博主手机架构为arm64.
在第27行,执行wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Rootfs/Debian/${archurl}/debian-rootfs-${archurl}.tar.xz -O $tarball
${archurl}变量为cpu架构,$tarball
为debian-rootfs.tar.xz
所以我需要下载文件https://github.com/EXALAB/Anlinux-Resources/tree/master/Rootfs/Debian/arm64/debian-rootfs-arm64.tar.xz
并命名为debian-rootfs.tar.xz
想办法下来后继续分析debian.sh
脚本。前三十行都是为了判断debian-fs与debian-foorfs.tar.xz是否存在,所以我们要做的就是将下载下来的debian-rootfs-arm64.tar.xz
修改为debian-rootfs.tar.xz
。
如果直接执行debian.sh,可能会报错或者只生成几个文件夹的同时tar包消失的情况。
建议在执行之前使用pkg update
和pkg upgrade
来更新软件包。
更新软件包后再执行命令bash debian.sh
随后安装成功,如果报错可以向开发者提交issueEXALAB/AnLinux-App: AnLinux allow you to run Linux on Android without root access. (github.com)
执行脚本./start-debian.sh
以进入linux系统
以下为拓展内容
打开termux自动进入linux系统
由于进入linux系统需要执行脚本./start-debian.sh
,所以在.bashrc
中添加./start-debian.sh
即可
注意目录,注意目录,注意目录!!
该脚本位于下载tar包的目录,是在安装成功后自动生成的。博主是在termux打开后的默认目录中操作的,所以可以直接使用./start-debian.sh
,如果位于其他文件夹,则自行调整。建议使用绝对路径。
成功进入linux会发现没有权限访问安卓本身存储空间,这需要root手机。
进入Anlinux
APP,点击左上角菜单
,在功能
中选中以超级权限运行
,在查看提示后点击复制按键,在termux中粘贴指令并执行以安装tsu
,termux可能会申请root权限,安装成功后手动进入linux,此时linux已有操作安卓系统内文件权限。此时退出并Exit所有termux的session,再重新进入,会发现无法成功进入linux。
由于执行tsu
命令后后账户实际上发生改变,相当于切换账户,/bashrc
文件也发生改变,在tsu
后边的指令并不会实际执行。所以需要在执行tsu
后的账户的.bashrc
(该文件位于~/.bashrc)中写入./dstart-debian.sh
。
Anlinux的基于termux的linux系统完全为开发者自主编译,会缺少部分常用命令,可以自行下载。