Termux中安装vscode和zotero


在Termux chroot Ubuntu 22.04环境中使用vscode和zotero

前言:

之前使用Termux都是使用proot-distro的文件系统,但是proot的权限有限制,比如htop无法查看cpu使用情况,arp等指令无法使用等问题。既然平板都已经root了,为何不搭建一个更高权限的环境呢。

平台:xiaomi pad 5 pro(5G)

注意:需要Root

效果图

一、准备工作

1、Android 12安裝Busybox

  1. 安装这个新版本Magisk模块管理器:FoxMagisk Module Manager
  2. 从里面搜寻“Builtn Busybox”,安装Magisk模块,重开机。

2、配置openssh

为了方便后续安装,建议使用pc端ssh连接termux进行操作。

安装openssh

pkg update
pkg install openssh -y

设置密码

passwd

启动sshd

sshd

注意termux终端的sshd默认使用8022端口,另外ssh连接termux时无视用户名

到此,就可以在pc端完成后面的操作了

二、安装Ubuntu chroot环境

Linux Deploy默认是把文件系统存放成映像文件挂载,但这里我们直接把Ubuntu的文件系统解压缩到适当的位置。

  1. 启用Termux,安装tsu和pulseaudio:

    pkg install tsu pulseaudio
  2. 切换到su,选择这个目录比较不会有权限问题。 首先添加存储文件系统的目录 :/data/local/tmp

    su
    mkdir /data/local/tmp/chrootubuntu
    cd /data/local/tmp/chrootubuntu
  3. 下载最新Ubuntu 22.04 base文件系统。 你可以到Ubuntu官网查看每日建构的最新版本。

    wget https://cdimage.ubuntu.com/ubuntu-base/releases/22.04/release/ubuntu-base-22.04-base-arm64.tar.gz
  4. 解压缩,再新增一个当作挂载点的sdcard目录

    tar xpvf ubuntu-base-22.04-base-arm64.tar.gz --numeric-owner
    mkdir sdcard
  5. 用vi在新增启动chroot的脚本,填入以下内容。/data/local/tmp/start.sh

    busybox mount --bind /dev /data/local/tmp/chrootubuntu/dev
    busybox mount --bind /sys /data/local/tmp/chrootubuntu/sys
    busybox mount --bind /proc /data/local/tmp/chrootubuntu/proc
    busybox mount -t devpts devpts /data/local/tmp/chrootubuntu/dev/pts
    mkdir /data/local/tmp/chrootubuntu/dev/shm
    busybox mount -t tmpfs -o size=256M tmpfs    data/local/tmp/chrootubuntu/dev/shm
    
    # 將手機內部儲存空間掛載到chroot的/sdcard目錄
    busybox mount --bind /sdcard /data/local/tmp/chrootubuntu/sdcard
    
    # 進入chroot
    busybox chroot /data/local/tmp/chrootubuntu /bin/su - root
    
    # 退出chroot後自動取消掛載
    busybox umount /data/local/tmp/chrootubuntu/dev/shm
    busybox umount /data/local/tmp/chrootubuntu/dev/pts
    busybox umount /data/local/tmp/chrootubuntu/dev
    busybox umount /data/local/tmp/chrootubuntu/proc
    busybox umount /data/local/tmp/chrootubuntu/sys
    busybox umount /data/local/tmp/chrootubuntu/sdcard
  6. 赋予执行权限

    chmod +x start.sh
  7. 进入chroot,这样就可以开始安装VNC server和SSH等服务了。 此脚本在输入之后会自动取消挂载目录。 如果退出后chroot行程没有中止,那么就强制停止Termux。

    sh start.sh

如果想打开termux进入chroot ubuntu,vim编辑 .bashrc

pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
cd /data/local/tmp
su -c ./start.sh

三、安装常用软件和桌面环境

在下载软件包前,先修正DNS和添加本地名:

# 使用Google的DNS
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "127.0.0.1 localhost" > /etc/hosts

然后解决“Download is performed unsandboxed as root”警告,并让root能访问Android的网络:

groupadd -g 3003 aid_inet
groupadd -g 3004 aid_net_raw
groupadd -g 1003 aid_graphics
usermod -g 3003 -G 3003,3004 -a _apt
usermod -G 3003 -a root

更新APT存储库并安装常用工具 :

apt update
apt upgrade
apt install vim

安装XFCE4(选择2):

apt install xfce4 xfce4-goodies
update-alternatives --config x-terminal-emulator

安装VNC server:

apt install tigervnc-standalone-server tigervnc-xorg-extension

设定6位数字密码 :

vncpasswd

用vim编辑,设定 VNC 启动脚本 :~/.vnc/xstartup

vim ~/.vnc/xstartup
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADRESS
# 設定PulseAudio音效
export PULSE_SERVER=127.0.0.1 && pulseaudio --start --disable-shm=1 --exit-idle-time=-1
# 執行XFCE4
exec startxfce4

赋予执行权限

chmod +x ~/.vnc/xstartup

执行VNC server(注意屏幕上显示的端口号),再使用AVNC新增进行联机。 此外也可以用电脑的VNC Viewer进行区域连线。localhost:5901

vncserver :1 -localhost no -geometry 2560x1600

为了方便调用,可以在chroot ubuntu的.bashrc中添加

alias vnc='vncserver :1 -localhost no -geometry 2560x1600'

后续使用vnc命令即可开启vncserver

关闭vncserver

vncserver -kill :1

四、安装浏览器

目前如果使用apt安装firefox-esr的话,ubuntu会将安装指向snap,但是chroot环境中的snap有些问题无法使用,所以需要从Mozilla官方软件库安装,在此之前需要先安装

sudo apt install software-properties-common

才能使用add-apt-repository命令

sudo add-apt-repository ppa:mozillateam/ppa
sudo apt-get update
sudo apt-get install firefox-esr

五、安装vscode

vscode官方下载地址为Visual Studio Code - Code Editing. Redefined

选择.deb ARM64版本进行下载,可以将下载链接复制到termux中进行下载,下面的下载链接只是示范,具体可换成自己想要安装的版本

cd Downloads/
wget https://az764295.vo.msecnd.net/stable/d045a5eda657f4d7b676dedbfa7aab8207f8a075/code_1.72.2-1665612990_arm64.deb

安装vscode

dpkg -i code_1.72.2-1665612990_arm64.deb

六、安装zotero

Index of /aarch64/ (archlinuxcn.org)中选择zotero-6.x.xxx-aarch64.pkg.tar.zst,复制下载链接,使用wget完成下载

cd Downloads/
wget https://repo.archlinuxcn.org/aarch64/zotero-6.0.15-1-aarch64.pkg.tar.zst

安装工具:

apt install zstd alien 

安装zotero

zstd -d zotero-6.0.15-1-aarch64.pkg.tar.zst
alien -vv zotero-6.0.15-1-aarch64.pkg.tar

注意:这里需要等待数分钟

在命令执行结束后,会在Download文件下生成一个zotero的.deb文件,使用dpkg完成安装

dpkg -i zotero_6.0.15-2_all.deb

参考资料

用手机Termux建立chroot Ubuntu 22.04环境 | Ivon的博客 (ivonblog.com)**

通过Termux和VNC实现以手机为服务器的桌面办公_phaste的博客-CSDN博客_termux vnc

How to Fix ‘add-apt-repository command not found’ on Ubuntu / Debian (phoenixnap.com)

Zotero on arm64 Linux or ChromeOS (ARM)? - Zotero Forums


文章作者: Liuss
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Liuss !
评论
  目录