1. 为什么要在手机上搞开发?Termux的潜力远超你的想象
你可能觉得,在手机上写代码、搭环境听起来像是极客的炫技,或者只是无聊时的消遣。我以前也这么想,直到有一次出差,我的主力笔记本突然罢工,而一个紧急的线上Bug必须立刻修复。当时手头只有一部安卓手机,情急之下,我打开了已经吃灰很久的Termux。那次经历彻底改变了我的看法——我不仅用Vim修好了代码,还用Git提交了修改,甚至通过Node.js跑通了本地测试。从那天起,我的手机就从一个纯粹的娱乐和通讯设备,变成了我口袋里最可靠的“开发备胎”。
这就是Termux的魅力。它不是一个简单的终端模拟器,而是一个完整的、无需root权限的Linux环境。你可以把它理解为一个运行在你Android系统内部的、高度精简的Linux子系统。它自带了一个强大的包管理器pkg(基于APT),让你可以像在Ubuntu上一样,轻松安装Python、Node.js、Golang、GCC编译器、Git、甚至数据库(如SQLite、MariaDB)。这意味着,你可以在通勤路上、在咖啡馆等朋友时、或者在任何一个碎片化的时间里,随时掏出手机,继续你的代码工作、学习新的命令行工具,或者搭建一个小型服务器做测试。
很多人把Termux当作一个高级“玩具”,但我想说,把它配置成一个高效的生产力环境,是完全可行且实用的。特别是对于移动端开发者、运维工程师、或者任何需要随时响应线上问题的技术人员,一个随时在线的开发环境意味着巨大的灵活性和安全感。接下来,我就带你从零开始,把这个“玩具”一步步打造成一个功能齐全的移动开发工作站。我们会从最基础的配置讲起,一路安装IDE、配置开发栈、解决ARM架构下的各种“坑”,最终让你能舒舒服服地在手机上完成大部分轻量级开发任务。
2. 从零开始:Termux基础配置与优化
2.1 安装与初始化:别急着敲命令
首先,你需要从F-Droid或Google Play商店安装Termux。强烈建议从F-Droid安装,因为商店版的Termux可能已经停止更新,而F-Droid版本由社区维护,更新更及时,能获得最新的软件包和安全补丁。安装后第一次打开,你会看到一个朴素的黑底白字命令行界面。别慌,我们一步步来。
第一步是更新软件源并升级所有包。这和在Ubuntu上操作几乎一样:
pkg update
pkg upgrade
运行这两个命令时,如果提示是否继续,一律输入 y。这个过程会更新本地的软件包列表,并将所有已安装的包升级到最新版本。这是保证后续安装顺利的基础。
接下来,我们需要安装一些最核心的工具。我把它们称为“基础四件套”:
pkg install -y git curl wget proot-distro vim
- git:版本控制,程序员的生命线,必须装。
- curl & wget:网络下载工具,后续下载脚本、安装包全靠它们。
- proot-distro:这是Termux的“神器”。它允许你在Termux内部再安装一个完整的Linux发行版(如Ubuntu、Debian、Arch Linux)。这能完美解决某些软件在Termux原生环境下的兼容性问题,尤其是涉及到图形界面(GUI)应用时。我们后面会用到它。
- vim:经典的文本编辑器。如果你喜欢nano,也可以安装
nano。
2.2 存储权限与基础目录设置
默认情况下,Termux只能访问自己的私有目录(~/,即 /data/data/com.termux/files/home)。为了能方便地访问手机存储里的文件(如下载的安装包、你的代码项目),我们需要获取存储权限并建立软链接。
在Termux中执行:
termux-setup-storage
手机会弹出权限请求,点击“允许”。这个命令会做两件事:1. 请求存储权限;2. 在你的家目录下创建一个 ~/storage 目录,里面会有指向手机内部存储、SD卡等位置的符号链接。
完成后,ls ~/storage 看看,你应该能看到 shared、dcim、downloads 等文件夹。其中 ~/storage/shared 通常就对应你的手机内部存储根目录。你可以在这里存放你的代码仓库。为了方便,我习惯创建一个专用目录并设置别名:
mkdir -p ~/storage/shared/CodeProjects
echo "alias cdp='cd ~/storage/shared/CodeProjects'" >> ~/.bashrc
source ~/.bashrc
这样,以后只要输入 cdp,就能快速进入你的手机存储里的代码项目目录了。
2.3 个性化你的Shell:效率提升的关键
一个顺手的Shell环境能极大提升操作效率。Termux默认使用Bash,我们可以简单美化一下。首先安装一些工具和字体:
pkg install -y zsh exa neofetch

660

被折叠的 条评论
为什么被折叠?



