安卓5.0以上7.0以下使用Termux

最近想弄点小服务玩玩,试试装个homeassistant。树莓派之类的稍微有点贵,就把目光投向了家里闲置的老旧安卓手机。本身以为安装termux之后就可以使用,结果遇到了一些小坑,百度后并没有搜到填坑方法。自己解决后,在这里做个记录。

1.安装准备

Termux支持5.0以上的安卓系统。

Termux7.3版本之后,仅支持7.0以上的安卓系统。

根据手机系统准备安装包。7.3以后的版本网上可以搜到安装方法,这里按下不表。7.3的安装包可以在百度上搜索,或者在安上找到。截止今日,酷安上的termux版本为7.3。

2.安装与设置

安装完termux之后,进入app,等待installing结束之后即可看到命令行界面。

此时pkg update、安装组件都会报错(403)

报错(请勿执行此操作)

搜索后更改为清华的镜像,再次运行pkg update,pkg upgrade之后,命令行报错,无法运行。此时发现清华的镜像后面有警告。

解决

sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://termux.com/game-packages-21-bin games stable@' $PREFIX/etc/apt/sources.list.d/game.list

sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://termux.com/science-packages-21-bin science stable@' $PREFIX/etc/apt/sources.list.d/science.list

手动修改:

编辑 $PREFIX/etc/apt/sources.list.d/science.list 修改为如下内容

deb https://dl.bintray.com/grimler/science-packages-21 science stable

deb https://termux.com/science-packages-21-bin science stable

编辑 $PREFIX/etc/apt/sources.list.d/game.list 修改为如下内容

deb https://dl.bintray.com/grimler/game-packages-21 games stable

deb https://termux.com/game-packages-21-bin games stable

$PREFIX/etc/apt/sources.list 内容保持不变

deb https://termux.net stable main

此时执行apt update && apt upgrade发现可以正常执行。

打开ssh

在手机上操作实在是难受,安装ssh后远程连上进行操作。

执行安装

pkg install openssh

设置密码

passwd

运行ssh

sshd

此时可以用ssh工具连接上,端口为8022。登录用户名我是Linux,如果不确定使用uname命令查看。

补充

安装termux-services,设置SSH自启动

pkg install termux-services

sv-enable sshd
 

# 启动

sv up sshd

# 停止

sv down sshd

# 开机启动

sv-enable sshd

# 禁止开机启动

sv-disable sshd

利用proot模拟root

pkg install proot

termux-chroot //进入root

exit //退出

如果出现某些命令突然无法使用的错误(如遇到过无法使用ls),可以在安卓后台关闭termux,重新开启。 

在Termux安装Ubuntu并启动

在AnLinux转到Termux的时候会初始化,下左图。此时必须联网,因为要下载相应的文件。在安装Ubuntu之前需要执行两个操作:

申请读写权限,

termux-setup-storage

更新一下,

apt update

更新之后即可执行AnLinux复制过来的指令,如下

pkg install wget openssl-tool proot -y && hash -r && wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Ubuntu/ubuntu.sh && bash ubuntu.sh

在Termux执行的结果如下,这个过程可能执行时间教程,如果有科学上网最好开启。完成之后会输入【ls】指令可以看到如下,下右图。

打开Ubuntu

./start-ubuntu.sh

在下面看到 root@localhost 就知道进入Ubuntu了,这样就可以愉快的玩耍啦~

部署Spring Boot应用

下载jdk:jdk-8u111-linux-arm64-vfp-hflt.tar.gz

注意:这里下载jdk的时候要根据手机的CPU型号进行选择,我这里选择了和骁龙处理器匹配的arm64架构版本,不知道选择CPU对应指令可自行百度,实在查不到可以选择和我一样的arm64

这里提供一个jdk下载的地址,基本所有的版本都能在上面找到,官网的下载速度实在太慢,还需要oracle账户登录,非常心累

上传至目录:/data/data/com.termux/files/home/ubuntu-fs/root/

解压:

tar -xzvf jdk-8u111-linux-arm64-vfp-hflt.tar.gz

spring boot应用打包

运行

java -jar demo-0.0.1-SNAPSHOT.jar

安装MySQL

首先,输入下列命令确保你的仓库已经被更新:

sudo apt update

现在,安装 MySQL 5.7,简单输入下列命令:

sudo apt install mysql-server -y

笔者在这遇到了问题,无法通过局域网ip远程连上mysql,查阅相关资料后得以解决

1、网络检测

1)ping主机可以;
2)telnet 主机3306端口不可以;
     telnet 主机22端口可以;
   说明与本机网络没有关系;

端口检测

1)netstat -ntpl |grep 3306
    tcp        0      0 :::3306                     :::*                        LISTEN      - 
2)netstat -ntpl |grep 22
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -   
   可以看出22端口监听所有地址,而3306只监听本机地址(绑定了到了本地),所以远程无法访问。修改my.cnf 中bind-address=0.0.0.0
   对于端口只允许本机访问,有两个地方启用,一个是防火墙启用3306,一个就是mysql配置绑定本机地址。

修改访问权限

修改文件 etc/mysql/mysql.conf.d/mysqld.cnf,将如下图所示:

 将bind-address=0.0.0.0注释或者删除

重启mysql:service mysql restart,连接成功

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐