目录
Termux是一款在Android上运行的终端模拟器,其中内含了一个非常轻量的Linux环境,并且使用apt做包管理器。最新的Termux已经不在Play Store上更新了,安装需要去Github或者官网。旧版本的Termux在使用apt的时候可能会碰到问题。
近来因为买了Surface Duo,在手机上稍微折腾了一下Termux,尝试是否能把手机变成Linux级别的生产力工具。结论当然是不可以,一方面性能不够,另一方面Termux上的包还是太少了,不过还是记录一下一些环境设置方法,供之后查阅。
另外,Termux支持通过proot
包来安装完整的Linux系统,最有名的是TermuxArch。在安装完完整系统之后,理论上你的手机就已经变成完整的Linux电脑了!不过由于我并不需要那么多功能,我没有走这一条路线。
ssh客户端
在手机上使用ssh客户端还是非常实用的,这样可以随时随地监控各个电脑的情况,并且不怎么耗流量。在Termux里面安装ssh非常简单,直接
|
|
如果你像我一样主要通过SSH Key连接各主机,那么你可能需要安装Termux:API以便于从手机中拷入密钥到Termux中,还需要手动开一下ssh-agent服务。建议直接在.bashrc
(可能需要新建)中加入以下内容
|
|
然后如果你在服务器上有像我一样配置Powerline的话(可参考我之前的美化terminal的博客),你可以安装Termux:Styling这个app,然后在Termux中就可以选择Nerd Font了,非常不错!
Rust环境配置
Termux的仓库中直接有提供rust,因此可以直接
|
|
这个命令会顺带装上Clang编译器。
Python环境配置
我尝试的另一大内容就是在Termux里面搭建基本的Python环境。Termux只提供了Python的包,几乎没有提供其他任何包,因此需要手动安装。你可以直接选择安装Anaconda,但是目前由于兼容性的问题,Termux中无法运行很多给aarch64
架构编译的文件,这个问题在之后也许会被Termux解决。
首先是安装python,直接pkg install python
即可。在我这次安装的时候,Python已经直接是3.10的版本了,很不错。然后用get-pip.py
脚本可以安装上pip
:
|
|
有了pip之后纯Python的包就可以直接装了,而用到Python扩展的包(如numpy)则需要编译器和对应的依赖项。编译器我在之前装Rust的时候顺便装上了,也可以直接通过pkg
安装Clang(Termux仓库里只有Clang没有GCC)。
安装Numpy时如果系统里没有BLAS包,安装可以成功完成,但是会有警告,并且性能欠佳。这次我尝试给安装了一下OpenBLAS,过程还挺顺利的,命令如下
|
|
安装好OpenBLAS之后再pip install numpy
,这时Numpy会自动找到OpenBLAS。在有了Numpy之后,许多依赖于Numpy的包也很容易能装上了(如Cython、Pandas,但是Scipy装不了,因为Scipy需要Lapack和gfortran,这意味着需要把GCC的工具链导进来,这里我就懒得弄了。如果有需要的话一位Github老哥自己搭建了一个apt仓库,可以从那里安装)
之后我还尝试了安装Jupyter Notebook和matploblib / plotly
|
|
值得一提的是就如前文所说,Termux好像无法正常运行通常给aarch64编译的包,有可能是因为没有glibc,或者其他依赖项。因此在Termux中尽量使用官方仓库提供的包,保证没有问题,如果要用其他未提供的包则很有可能需要重新用Clang编译。这也是我尝试安装Anaconda和.Net Core但是都失败了的原因。
Termux好像还支持X11,因此你可以在手机上运行GUI程序!简直牛逼!不过我也没有需求,所以没有试。要实现这个功能需要安装X11服务器,可选的有XServer XSDL和Termux团队正在开发的Termux:X11。用XServer XSDL运行TermuxArch可以参考这个教程。
最后虽然我把需要环境弄得差不多了,甚至成功在手机上运行了Jupyter Notebook并且试着画了几张图,但是最后我其实还是发现,Termux最好的归宿还是SSH客户端,毕竟手机的性能限制摆在那里。不过这些工具(尤其是Python)在有时候想随手做点或者算点什么东西的时候还是非常有用的。仅供参考~