玩转Termux

重点参考资料termux wiki

简介

本篇文章主要介绍在安卓手机上使用termux软件环境搭建linux环境系统,主要是gcc和python,以及numpy/scipy,gsl等科学计算环境,可以让手机成为口袋里的高级计算器。

硬件:小米8,RAM 6G, ROM 64G,CPU 骁龙845 8核

软件:MIUI10系统稳定版(非root),安卓8.1.0版本

安装软件: APKpure(需墙),Termux, Haker's keyboard

安装完termux之后更新一下包以及安装一些必要的软件,如gcc(clang),vim,make,autoconf,python-dev(安装scipy用到),tree等

安装gcc


deb [trusted=yes] https://its-pointless.github.io/files/  termux extras

复制该内容,使用vim打开文件/etc/apt/sources.list添加之。这里需要注意的是termux下的文件路径和一般linux不同,termux下用户目录的绝对路径在:

/data/data/com.termux/files/home

而在termux下安装的软件,链接库,头文件等在路径:

/data/data/com.termux/files/usr

,如下结构图所示:

图片发自简书App
pkg install gnupg

添加源公钥的步骤我没有操作成功,下载不了,wget和curl试了提示非http链接,于是我忽略了这个步骤,后面还是可以正常安装gcc的

wget https://its-pointless.github.io/pointless.gpg

这是源公钥,如果没有安装gnupg,

apt-key add pointless.gpg

pkg update

# search packages

pkg search gcc

pkg install gcc-7

安装完成后输入

gcc-7 -v

验证gcc版本信息

图片发自简书App

更改gcc版本

一开始安装了clang,现在要更改默认的gcc编译器,可以按照下图设置


图片发自简书App

numpy/scipy安装

在termux中安装完python-pip(这里默认的python版本为3,如果需要python2的话可以使用pkg install python2安装)后,使用pip可以安装sympy,numpy但是安装scipy会出错,提示找不到lapack或者blas,查看官方手册知直接使用pkg安装numpy和scipy即可(注意顺序,先numpy,后scipy,这里本人有个疑问,可以使用pkg安装这两个库的原因好像是前面添加了源https://its-pointless.github.io/files/ termux extras才成功的,因为编译blas需要fortran编译器,因为按照这个顺序下来也没什么问题,就没有深究其中的依赖关系了)

pkg install numpy

pkg install scipy

这样操作同时会安装上openblas的。

安装GSL科学计算库

1.下载源代码:

wget http://mirrors.ocf.berkeley.edu/gnu/gsl/gsl-latest.tar.gz

2.解压:

tar -xzvf gsl-latest.tar.gz

3.进入解压后的文件夹

cd gsl-2.5

4.修改配置文件,这里主要参考termux包管理器教程

解压后的文件中可以找到configure', 'configure.ac', 'Makefile.in'等文件说明是基于GNU autotools工具链构建的,

在源代码根目录下执行

find . -name 'config.sub' -exec chmod u+w '{}' \; -exec cp -f "${PREFIX}/share/libtool/build-aux/config.sub" '{}' \;

find . -name 'config.guess' -exec chmod u+w '{}' \; -exec cp -f "${PREFIX}/share/libtool/build-aux/config.guess" '{}' \;

5.执行配置

./configure --prefix=/data/data/com.termux/files/usr

这里一定要更改prefix路径,因为默认的话会安装在/usr/local,这个路径在termux是没有的,或者说提示没有操作权限,作者一开始就是默认不管这个配置最后无法成功安装,这也是在手动编译包时与linux环境一大区别

6.编译及安装

执行

make -j10

make install

执行完安装后我看到一些警告,于是根据提示又执行了下面命令:

libtool --finish /data/data/com.termux/files/usr/lib

进入gsl doc文件夹

cd /data/data/com.termux/files/home/gsl-2.5/doc/examples
图片发自简书App

设置访问存储文件

使用命令

termux-setup-storage

按照下图设置

图片发自简书App

设置后会在用户目录下显示文件夹storage,里面可以访问内容有相册,下载文件等。

Installing ArchLinux with termux

  1. Download the script,copy and paste the following command lines into your Termux bash command shell:
pkg install wget
wget https://sdrausty.github.io/TermuxArch/setupTermuxArch.sh
  1. Run the script
bash setupTermuxArch.sh

It'll took some time to download archlinux and unpacking, please be patient!
安装完后在/data/data/com.termux/files/home会多出一个arch文件夹,刚才安装的所有arch系统的文件都在这里

3.成功安装后会自动进入archlinux环境,退出archlinux环境执行

exit

即可;当关闭termux进程然后重启,默认是termux,执行命令

startarch

便可进入archlinux环境


图片发自简书App

4.如果要删除刚安装的arch,查看安装脚本的帮助信息可知只要在脚本根目录下执行

bash setupTermuxArch.sh purge

其他帮助信息如下图所示:
图片发自简书App

5.创建登录用户,因为使用命令

startarch

默认是以root登录的,平时我们在linux系统下都是以某个用户身份登录操作的,因此需要创建个用户来登录,首先执行命令

startarch c addauser kindy

这里kindy便是创建的用户名,此命令会直接以用户kindy身份登录archlinux,退出之后要想再次以此用户登录,执行命令

startarch user kindy

或者

startarch login kindy

或者

startarch u kindy

或者

startarch l kindy

都可以。

后记

折腾完termux环境以后其实就一个目的,在手机上多学习一下linux系统,熟悉系统组成和各种命令,编辑跑程序啥的效率太低,有那时间还不如好好学习linux的理论知识,别把时间都浪费在码代码上了,学而不思则罔,思而不学则殆!

推荐阅读更多精彩内容