ArchLinuxArm in Termux

我抄我自己
https://gitee.com/yuweiEX/arch-linux-arm-in-termux

在此声明,本教程乃是为了方便自用,借鉴了网络上其他教程的方法和代码,如果有侵权或者什么问题可以联系我删除,教程如果有什么问题也可以在下面留言,我会改正,谢谢。

介绍

在Termux里安装ArchLinuxArm版本

软件架构

Android
Termux
ArchLinuxArm

安装教程

1.安装Termux

建议选择在F-droid里安装,里面有各种Termux用得上的其他小软件,比如Termux:Styling和AnLinux。
F-droid官网链接:(https://f-droid.org/)
另外考虑到F-droid官方源不够快的原因,建议改换清华源。建议先把官方源那几个全部删除,然后再复制清华源导入。导入清华源后刷新,搜索Termux安装即可。
换源链接:(https://mirrors4.tuna.tsinghua.edu.cn/help/fdroid/)

2.Termux换源

按照清华源官方文档操作即可。
链接:(https://mirror.tuna.tsinghua.edu.cn/help/termux/)

3.下载ArchLinuxArm包

由于在Termux里下载压缩包容易被后台清理中断,所以我建议在浏览器下载ArchLinuxArm的最新包,而手机架构基本为aarch64,下载这个包就行。
链接:(https://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/os/ArchLinuxARM-aarch64-latest.tar.gz)
有需要的也可以下载md5验证。
链接:(https://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/os/ArchLinuxARM-aarch64-latest.tar.gz.md5)

(不想在浏览器下载的朋友可以跳过此步)


4.建立目录

termux-setup-storage    #建立Termux与手机存储的链接
mkdir ArchLinux         #创建ArchLinux文件夹
cd ArchLinux            #进入ArchLinux目录
pkg update              #更新软件

5.下载脚本

因为目前网上所有的教程都是在github下载脚本代码,而访问github需要科学上网,虽然科学上网对于我们来说是基操,但还是未免不太方便,这也就是我写这个的理由,为了方便自己。好了,废话少说。
复制代码运行即可
pkg install wget proot openssl-tool -y && hash -r && wget https://gitee.com/yuweiEX/arch-linux-arm-in-termux/blob/master/arch.sh

6.运行脚本

对于没有在浏览器下载ArchLinuxArm包的朋友,复制这个到Termux直接运行

bash arch.sh

对于在浏览器下载ArchLinuxArm包的朋友,程序比较复杂一点,但避免了下载中断,也对ArchLinuxArm的包进行了备份,如果下载安装失败,则可以省去再次下载ArchLinuxArm包的时间。首先各位需要在文件管理器里面找到ArchLinuxArm包的路径,然后将之移动到~/storage/downloads目录(这里这个目录对应了手机里的~/Download目录,我浏览器下载文件正好在这里)然后将ArchLinuxArm包的文件名改成arch-rootfs.tar.gz
之后运行以下代码,将arch-rootfs.tar.gz复制到ArchLinux文件夹下,并运行安装脚本
cp ~/storage/downloads/arch-rootfs.tar.gz ~/ArchLinux/
bash arch.sh

7.设置网络

接下来就是等待,可能会有(tar xxx operation no permission) tar解压没有权限的回显刷屏,不用管它就完了。根据你手机的配置,最多几分钟之内就有结果,可以看到命令提示符左侧显示[root@localhost ~]的标志,但是目前还没有万事大吉。我建议先换源,再执行下面那个代码。
换源
nano /etc/pacman.d/mirrorlist  
#将以下内容复制进去,一般清华源和中科大源,任选一个源就足够了
##清华  
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/$arch/$repo
##中科大  
Server = http://mirrors.ustc.edu.cn/archlinuxarm/$arch/$repo
#接着再执行Termux上面英文提示的命令
chmod 775 additional.sh && ./additional.sh
然后更新软件
pacman -Syy
pacman -Syu

8.其他配置

如果密钥出现错误,可以运行以下代码解决
pacman-key --init
pacman-key --populate archlinuxarm
或者
pacman -S archlinux-keyring
还可以添加Arch Linux CN 软件源
nano /etc/pacman.conf
[archlinuxcn] 
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
或
[archlinuxcn] 
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
密钥如果继续报错则安装archlinuxcn-keyring
pacman -S archlinuxcn-keyring

在此说明一下,创建用户的时候需要小心,/etc/sudoers里添加了username ALL=(ALL) ALL之后,需要把权限重新改回440,切换用户用su username即可。

也可以添加BlackArch源
pacman-key --init && pacman-key --populate archlinuxarm && pacman -Sy --noconfirm curl && curl -O https://blackarch.org/strap.sh && chmod +x strap.sh && ./strap.sh
BlackArch换源
把Worldwide那两行注释掉,找到下方China的三个源,任选一个,我选择清华源
nano /etc/pacman.d/blackarch-mirrorlist

9.有需要可以继续安装桌面环境

建议安装轻量版的桌面环境,例如xfce4,lxde,或者窗口管理器Awesome,Openbox,i3等。
这里以安装xfce4为例,并用VNC Viewer连接安装之后的桌面环境
安装相关软件
pacman -Syu
pacman -S xfce4 xfce-goodies wget tigervnc --noconfirm
设置vnc密码
vncpasswd
两次输入密码后出现
Verify:
Would you like to enter a view-only password (y/n)?
选n,这里问你是否要输入仅查看密码

接下来安装安卓软件VNC Viewer,这个百度找一个安装就行了,也可以在F-droid里随意安装一个VNC软件,这个没有要求。

安装完毕之后创建相关VNC服务环境配置,此时也可以直接使用以下命令运行VNC服务
vncserver :1     #如果这样可以直接启动成功,请忽略以下使用vncserver-start脚本的步骤
如果不能连接成功,则可以用下面的脚本进行,本人实测,脚本运行更加麻烦,可能会出现一些莫名其妙的错误
vncserver-start    #本人输入此命令后报错如下

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "C.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

usage: vncserver <display>

以上报错我怀疑,是我没有安装设置好语言。

如果还是想用脚本的可以继续,但本人实操,这种脚本压根没用,也可能是本人输入命令错误,所以有操作成功的大佬可以给我留言
下面是命令
ls -a   #/root目录下是否有.vnc目录
mkdir -p .vnc      #没有就用这个命令创建
wget https://gitee.com/yuweiEX/arch-linux-arm-in-termux/blob/master/xstartup -P ~/.vnc/
wget https://gitee.com/yuweiEX/arch-linux-arm-in-termux/blob/master/vncserver-start -P /usr/local/bin/
wget https://gitee.com/yuweiEX/arch-linux-arm-in-termux/blob/master/vncserver-stop -P /usr/local/bin/
chmod +x ~/.vnc/xstartup
chmod +x /usr/local/bin/vncserver-start
chmod +x /usr/local/bin/vncserver-stop
echo "export DISPLAY=":1"" >> /etc/profile
source /etc/profile
我发现以上脚本根本不能运行的原因,是因为vncserver -name remote-desktop :1这种启动的命令有错误,我不清楚是tigervnc的官方命令配置有所修改,还是我自己的错误,以上脚本我借鉴自Termux辅助软件AnLinux和Andronix,有兴趣的大佬可以研究看看是怎么回事。
以上运行之后,使用以下命令启动
vncserver-start    #启动命令
vncserver-stop     #停止命令
Termux上运行VNC服务成功后,启动VNC Viewer或者你下的VNC软件

输入127.0.0.1:5901连接

同时安装其他桌面环境也是同理

10.Termux美化

安装zsh和ohmyzsh
pkg install zsh
sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/blob/master/tools/install.sh)"
设置ohmyzsh主题
nano ~/.zshrc

我通常设置为随机主题ZSH_THEME="random"

设置语法高亮,自动建议和自动补全
cd "$ZSH_CUSTOM/plugins"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
git clone https://github.com/zsh-users/zsh-autosuggestions.git
wget https://mimosa-pudica.net/src/incr-0.2.zsh 

设置以上zsh插件生效
chmod 777 incr-0.2.zsh 
nano ~/.zshrc

在.zshrc末尾添加以下代码
plugins=(zsh-syntax-highlighting zsh-autosuggestions)
source ~/.oh-my-zsh/custom/plugins/incr-0.2.zsh
添加Termux快捷键
nano ./termux/termux.properties

去掉以下两行的注释
### Two rows with more keys
extra-keys = [['ESC','/','-','HOME','UP','END','PGUP'], \
               ['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]
有需要可以继续往后添加快捷键,或者用此配置下面的快捷键方式也可

11.电脑ssh连接Termux

第一步手机上
pkg install openssh
sshd
第二步电脑上

电脑要先安装ssh工具

ssh-keygen

将手机连接电脑,拷贝那个生成的.pub文件到手机的/storage/emulated/0/Download目录

将Termux里的文件替换成.pub
cp ~/storage/downloads/id_rsa.pub ~/.ssh/authorized_keys
第三步ssh连接
在Termux上操作以下步骤
whoami         #查看用户名
passwd         #修改密码
ifconfig -a    #查看本地ip地址

接下来ssh连接过去
ssh [username]@[host] -p [port]    #termux ssh默认端口为8022
上述操作也可以让电脑连接手机热点,然后再ssh连接过去

探索真理之门——真理是实践的女儿