1、序言
很重要的一条经验,也算是教训吧:完美主义有时候真害死人,不要在一个地方死磕,你实现不了的,也许别人也实现不了,因为目前根本就没有这样的条件。如: Termux 在 Android5.1 下安装 CentOS,找不到合适的源。(准确地说应该是在Android7以下)LinuxDeploy 中安装 Docker,可以安装成功,但不能运行;看到有人成功了,但效率低下,所以放弃了Docker。经过多日的折腾,终于有点小小成就!期间反反复复,多次尝试,有好几次都有了放弃的念头;但最终还是坚持了下来,仔细学习研究的文章有好几十篇,各种工具到处找。为了总结经验教训,也为了有同样需求的朋友少走一点弯路,很有必要把这个过程记录下来,供大家参考!
成就展:(呵呵…)
2、Android5.1系统
1)BusyBox
+LinuxDeploy
方案
手机要root,必须的;否则
Linux Deploy
无法使用;只要手机root后,在更低版本上应该也可以安装
(1)root手机
这一步比较痛苦,但又是必须的。root成功后,手机上能删尽删,能冻结的尽量冻结,给后面的安装运行留下尽可能多的操作空间和性能提升。
以金立F100A手机为例;只有1G的内存,精简后相当的流畅;精简后的模样。
关于系统的精简,有单独的文章讲解。
【图文详解】RE文件管理器手工精简Android系统
(2)安装BusyBox
点左上角三横杠进入 设置完成后,点左上角返回箭头,开始安装;如果还是英文,可以退出后重新进入,就变成中文了(3)安装LinuxDeploy
Linux Deploy 安装与使用 - coolape - 博客园 () PATH变量过程简单,可以参考下面博客
/system/xbin
(4)安装CentOS
尽量用默认的源点Linux Deploy左上角的三个横杠进入;修改配置文件名称,然后配置 Liunx Deploy 修改配置文件名称,然后返回 配置 Liunx Deploy,然后返回 配置 CentOS,然后返回/altarch/
如果默认源不行,可以试试这两个: http://chinanet.mirrors./centos-altarch//centos/ 安卓手机架构一般是aarch64
安装路径:安装在手机自带的存储空间中,则在路径开头加上${ENV_DIR}
;安装在sdcard中,加上${EXTERNAL_STORAGE}
开启SSH
设置挂载:挂载目录如果不存在的话,会自动创建关于挂载的补充说明
# Android机系统路径/storage/sdcard0/xxx# 外部扩展卡路径/storage/sdcard1/xxx# CentOS中路径/usr/local/xxx
手机Android中的目录结构:/sdcard/mycentos
CentOS 中的目录结构:/mnt/myapp
启动:如果添加挂载点之前已经安装好CentOS,就不需要重新安装。依次清空、配置、启动即可
测试挂载:两端都可以操作,是双向的
Android中添加,CentOS中删除
CentOS中添加,Android中删除
挂载的一个用途:利用SSH连接向手机传送文件rz
指令
点Linux Deploy右上角的三个点进入,配置、安装
启动CentOS
SSH连接
(5)安装Java运行环境
此时可以用ssh方式在电脑上操作
具体安装方法参考: 【Linux】6、软件安装:rpm、压缩包、yum_土味儿~的博客-CSDN博客
想在CentOS中安装Docker,可以安装,但反复尝试运行不成功;看到有人运行成功,但性能很低,所以就放弃了Docker,改为安装Java运行环境,直接运行Jar包。
选择与系统架构一致的jdk,否则运行时会提示无法执行二进制文件
;如:jdk-8u321-linux-aarch64.tar.gz
ssh远程安装jdk;上传指令rz
,如果没有rz
指令,用yum install lrzsz -y
安装
rz
上传参考于:xshell 使用命令上传、下载文件 - 七星瓢虫6 - 博客园 ()
配置java环境变量;配置文件:/etc/profile
,可以用vi /etc/profile
命令,在profile文件的最后加上
# jdk1.8.0_321就是java的安装目录,该目录下有bin,bin下有java...等命令;最后不要加/JAVA_HOME=/usr/local/java/jdk1.8.0_321# 各参数中间用冒号分隔,不是分号。最前面有.CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jarexport PATH=$PATH:$JAVA_HOME/bin
让环境变量生效
# 以下两条命令执行一条即可;二者等价source /etc/profile. /etc/profile
(6)运行jar包
2)Termux
方案
由于Android版本太低,很多源不支持,导致Termux下安装CentOS不成功;放弃
3、Android7以上系统
Android7以上版本,可以采用下面两种方案,不用root,有比较多的源支持,相对简单,暂时省略