尧图精选

Termux 命令链路全解析:包管理、proot 容器与手机服务器

🕒 发布时间:2026/10/1 17:16:23 📁 来源:尧图网络
手机上装个终端跑 Linux 命令这事我在好几台设备上折腾过从早年刷机时代一路用到现在。Termux 就是干这个的一个不需要 root、不需要解锁、装上就能用的 Android 终端环境自带包管理器能装 Python、Node、Git、编译工具链甚至能在里面再套一个完整的 Debian。很多人第一次打开它会懵——提示符是个~ $敲ls有反应敲su报错装个包卡在Could not resolve host然后就不知道下一步该干嘛了。这篇就把 Termux 的整套命令链路从头到尾捋一遍包括包管理、存储权限、远程登录、发行版容器、脚本自动化以及那些官方文档里不会写、但实际用起来一定会撞上的报错。不管你是刚拿到手机想学 Linux 命令的新手还是想拿旧手机改造成小型服务器的人下面这些内容都能直接抄作业。1. Termux 是不是安卓上的 Linux先把定位搞清楚1.1 它和普通终端模拟器的本质差别应用商店里叫终端模拟器的 App 一大把但绝大多数只是个壳敲完命令转发给系统的/system/bin/sh能干的活非常有限。Termux 完全不是这个思路它在应用私有的数据目录里自己维护了一套完整的文件系统树有自己的bin、lib、etc、usr还带了自己的包管理器。也就是说你装进去的 Python、GCC、Git 都住在 Termux 自己的地盘里跟 Android 系统本身互不干扰卸载 App 就全部清空不会留垃圾。这套体系的根目录叫PREFIX你可以随时敲echo $PREFIX看一眼正常输出是/data/data/com.termux/files/usr。而你的家目录是/data/data/com.termux/files/home也就是提示符里的那个~。这两个路径是后面所有操作的基础凡是遇到配置文件放哪命令装哪去了这类问题答案基本都在这两个目录下面。有一点要提前说清楚Termux 用的 C 库是 Android 自带的 bionic而不是传统 Linux 发行版用的 glibc。这个差异直接导致了一堆麻烦——有些为 glibc 编译的二进制文件拿到 Termux 里跑不起来报No such file or directory但其实文件明明存在。遇到这种情况不用怀疑人生它说的文件不存在通常指的是解释器路径不对跟文件本身没关系。这也是后面要讲 proot-distro 的根本原因。1.2 装哪个版本渠道与架构的选择Termux 现在的安装渠道主要有三个F-Droid、GitHub Releases、以及某些应用商店里的第三方搬运版本。我的建议是优先 GitHub Releases 或者 F-Droid原因很简单——第三方搬运版可能被改过签名或者塞了东西而且版本更新不及时用着用着就会出现别人能装的包我装不上的诡异现象。下载之前先确认架构。绝大多数手机是arm64-v8a老一点的设备是armeabi-v7a模拟器上可能是x86_64。装完之后敲uname -m可以直接看到结果aarch64对应 arm64armv7l对应 armv7。装错了架构的表现是能打开能敲命令但pkg install的时候一堆包都提示找不到因为仓库里根本没有对应架构的构建。还有一个版本门槛的问题。较新的 Termux 构建要求 Android 7.0 以上如果你手上是 Android 5.1 这种老设备直接装最新版会闪退或者提示不兼容。解决办法是去 releases 页面往回翻历史版本找那些明确标注支持老系统的构建。老版本虽然少了一些新特性但基础命令、Python、SSH 这些核心能力都是齐的拿来做命令练习完全够用。顺便提一句Play 商店上那个版本早就停止维护了里面还残留着当年叫com.termux的老包名跟现在社区维护的版本不是一路货别混着装。1.3 装完立刻要做的三件事第一件事是更新索引并升级已有包pkg update pkg upgrade。这里有个细节pkg upgrade过程中如果提示配置文件冲突会问你Y/I/N/O/D/Z之类的选项新手最容易卡在这一步。一般选N保留现有配置就行选Y会把你的自定义配置覆盖掉选I是逐条对比比较费时间。第二件事是申请存储权限。敲termux-setup-storage系统会弹一个权限对话框点允许。这一步不做的话你后面想访问手机里的图片、下载目录、文档全都是 Permission denied。做完之后家目录里会多出一个storage文件夹这就是通往外部存储的入口。第三件事是先装几个保命工具pkg install nano vim git openssh curl wget tree。nano 是自带的简易编辑器用来改配置文件最省事vim 功能更强但学习曲线陡一点curl 和 wget 用来下载tree 用来直观地看目录结构。这几个装完基本的编辑配置、下载东西、传文件闭环就通了。2. 包管理这一关pkg、apt 与镜像源2.1 pkg 到底做了什么pkg是 Termux 官方包装的一层脚本底层调用的还是 Debian 系的apt。区别在于pkg会自动帮你处理几件事执行前先跑一次索引更新、过滤掉 Termux 不支持的包、以及在部分场景下智能推荐预编译版本。所以日常装包用pkg install xxx就够了不用每次手动apt update。但知道底层是 apt 很有必要因为报错信息全是 apt 风格的。常用的几个命令我列一下都是高频使用的pkg search 关键词—— 按名字搜包搜索结果只显示名字和简介pkg show 包名—— 看这个包的版本、大小、依赖、安装后的文件路径pkg files 包名—— 看某个包安装后都往哪些目录写了文件排查命令到底装哪了特别有用pkg list-installed—— 列出当前已装的所有包输出很长建议配合 greppkg uninstall 包名—— 卸载配置文件通常保留要彻底清就用pkg purgepkg clean—— 清理下载缓存空间紧张的时候必用有个容易被忽略的点Termux 的仓库里包名跟标准 Debian 不完全一致。比如你想装编译环境Debian 里叫build-essentialTermux 里也确实有这个名字但有些库会拆得更细得单独装libxxx-dev。搜不到的时候先pkg search一下别硬套 Debian 的经验。2.2 换源的两种方式默认源在国内访问速度经常不理想pkg update卡几分钟甚至直接超时都很正常。换源有两个路子。最省事的是官方自带的交互式工具直接敲termux-change-repo会弹出一个文字界面让你选择要替换的仓库通常选 Main repository 就够和要用的镜像站点回车确认即可。这个命令的好处是它会同时处理主仓库和 game/science 这类附加仓库不用手动改文件。另一个路子是手动改配置文件。文件位置在$PREFIX/etc/apt/sources.list用 nano 打开把里面的域名换成你要用的镜像站地址保存退出后再pkg update。需要注意的是不同版本的 Termux 这个文件的结构不一样有的版本是单文件里写多行有的版本拆成了sources.list.d目录下的多个文件。改之前先cat一下看清楚结构改错了会导致所有包都装不了。提示换源之后如果出现Hash Sum mismatch或者 GPG 校验失败八成是镜像站同步没跟上或者本地缓存脏了。先pkg clean清缓存再pkg update还是不行就换回默认源试一次确认是镜像的问题而不是本地配置的问题。2.3 装包报错的排查顺序装不上包这件事报错信息五花八门但排查顺序其实是固定的。我按自己踩坑的经验整理成一张表遇到问题从上往下走就行。报错原文关键词大概率原因处理办法Unable to locate package包名拼错、架构不匹配、或源里确实没有先pkg search确认包名再确认uname -m架构最后看是否需要换源Could not resolve host网络不通或 DNS 解析失败换网络环境重试或检查是否开了省电模式限制了后台网络Hash Sum mismatch本地缓存损坏或镜像未同步pkg clean后重试无效则换源E: Unable to lock directory有另一个 apt 进程在跑等前面的进程结束或重启 Termux 会话No space left on device应用数据分区空间不足df -h看剩余pkg clean卸载不用的包编译到一半报clang: error缺少头文件或依赖库先装对应的-dev包或者找官方预编译版本这里补充一个比较实用的习惯装任何稍大的包之前先df -h看一眼/data的剩余空间。Termux 的数据全在应用私有目录里很多手机的/data分区本来就不宽裕装个 GCC 工具链加上几个 Python 科学计算库吃掉一两个 G 是很正常的。空间满了之后的表现不只是装不上包甚至会导致已装命令莫名报错很难联想到是磁盘问题。3. 存储与文件从 termux-setup-storage 说起3.1 为什么到处都是 Permission denied这是新手最容易崩溃的地方明明ls /sdcard能看到文件cd进去就报 Permission denied明明termux-setup-storage点了允许访问某个目录还是不行。原因在于 Android 从 11 开始收紧了共享存储的访问策略应用不能随便读写整个外部存储只能访问自己创建的文件和几个特定的公共目录。Termux 的处理方式是在授权之后把系统允许访问的那些公共目录以软链接的形式挂到家目录下的storage文件夹里。你用ls -l ~/storage能看到类似downloads - /storage/emulated/0/Download这样的项。也就是说正确姿势是走~/storage/downloads这条路而不是直接cd /sdcard/Download。前者是 Termux 已经处理过权限的通路后者是原始路径在某些系统版本上会被拦。实操中我的习惯是需要长时间存放的文件放~/storage/shared下面短期处理的、贴代码用的文件就放 Termux 自己的家目录里。因为~/storage下的文件其实是在公共存储里任何 App 都可能访问或清理它而家目录是应用私有数据相对安全也更快。3.2 目录结构逐层拆解把几个关键路径记熟能省掉大量翻文档的时间。~或者/data/data/com.termux/files/home—— 家目录你的脚本、代码、下载的东西默认都在这$PREFIX也就是/data/data/com.termux/files/usr—— 所有通过 pkg 装的软件都在这bin放可执行文件etc放配置lib放库include放头文件~/storage—— 手机公共存储的软链接集合/sdcard—— 外部存储的另一个入口能不能用取决于系统版本$PREFIX/tmp—— 临时目录重启会话后可能被清配置文件的位置有规律可循全局配置在$PREFIX/etc下用户级配置在家目录的隐藏文件里比如~/.bashrc、~/.gitconfig、~/.ssh/config。搞不清楚某个工具的配置在哪pkg files 包名直接告诉你。3.3 文件操作命令与危险操作基础的文件操作跟标准 Linux 一模一样ls、cd、cp、mv、rm、mkdir、cat、less、head、tail、grep、find、chmod、ln -s这些命令的用法不需要重新学。但有两个在手机上特别需要注意的地方。第一个是删除。删除整个目录用的是rm -rf 目录名这个命令没有任何回收站机制敲下去就没了。我自己有个习惯执行rm -rf之前先敲一遍ls 目录名确认内容或者用rm -ri让它逐个确认。手机上没有撤销操作删错了外部存储里的照片视频是真的找不回来。第二个是路径里的空格。手机上下载的很多文件名带空格直接写进命令会被当成两个参数。正确做法是用引号包起来比如cp 我的 文件.txt ~/work/或者用 Tab 补全让 Termux 自动帮你转义。这个坑在批量处理文件的时候特别容易踩写脚本时建议统一用引号包裹变量。再分享一组空间排查的组合拳手机上空间紧张的时候很管用du -sh ~/* | sort -h能按大小排出家目录里最占地的目录du -sh ~/storage/shared/* | sort -h同理查外部存储df -h看整体剩余。找到占地大户再决定删什么比盲目清理高效得多。4. 把 Termux 当开发机用Python、Node、Git 的落地链路4.1 Python 环境与三方库装 Python 本身很简单pkg install python一条命令。装完敲python --version确认然后你会发现 pip 也是现成的。这里第一个要处理的是 pip 源默认源在国内装包经常卡在下载阶段改成就近的镜像能快很多命令是pip config set global.index-url 镜像地址改完会写进~/.config/pip/pip.conf以后不用重复设置。真正麻烦的是科学计算类的库。numpy、pandas、scipy 这些包在普通电脑上装起来没感觉在 Termux 上直接pip install大概率会触发源码编译编译到一半报错退出报错信息里全是 clang 和头文件相关的内容。原因是手机上的编译环境和标准 Linux 差异大很多包没有为 arm64 提供预编译的 wheel。正确的思路是优先走 Termux 官方仓库的预编译包pkg install python-numpy python-pandas这些是仓库维护者专门为 Termux 编译好的装完能直接在 Python 里 import。仓库里没有的包再考虑 pip装之前先pkg install build-essential cmake把编译工具链补齐能提高成功率但涉及 Fortran 或者重度 BLAS 依赖的包还是建议放弃或者转到 proot 环境里去装。纯 Python 的包就完全没这个问题pip install requests flask之类的都是秒装。所以判断标准很简单看这个包是不是有 C 扩展。有就去仓库里找没有pip 随便装。4.2 Node.js 的坑Node 的安装命令是pkg install nodejs-lts用 LTS 版本比最新的稳定生态兼容性更好。npm 的源同样建议换掉npm config set registry 镜像地址之后装依赖的速度会有明显差别。Node 在 Termux 上最大的问题是原生模块。凡是需要 node-gyp 编译的包涉及到 C 扩展的那些安装时基本都会失败报错里能看到 gyp 找不到编译器或者找不到某些系统头文件。处理方式有两种一是先pkg install python make clang补齐编译依赖再重试能救回来一部分二是找纯 JS 实现的替代包比如某些图像处理库换成纯 JS 版本。如果项目本身强依赖这类原生模块更稳的做法是放到 proot 里的 Debian 环境跑那边是标准 glibc绝大多数包都能正常编译。还有个细节在 Termux 里跑开发服务器npm run dev之类的时候进程会随着会话一起结束。想让它一直活着要么用后面会讲的 tmux要么加唤醒锁。这个坑我第一次踩的时候找了半天以为是端口被占了其实是进程被系统回收了。4.3 Git 与 SSH 密钥pkg install git装完之后第一件事是配身份git config --global user.name 你的名字 git config --global user.email 你的邮箱然后是生成 SSH 密钥用 ed25519 比 RSA 更短更安全ssh-keygen -t ed25519 -C 你的邮箱一路回车密钥会生成在~/.ssh/id_ed25519和~/.ssh/id_ed25519.pub。用cat ~/.ssh/id_ed25519.pub把公钥内容打印出来整段复制到代码托管平台的 SSH Key 设置里可以顺手重命名一下标注是手机上的设备方便以后管理。测试连通性用ssh -T git主机名看到欢迎信息就说明配好了。克隆仓库时如果嫌慢可以加--depth1只拉最新一次提交体积能小一大截对网络不稳定或者仓库历史很长的情况特别有效。需要完整历史的时候再git fetch --unshallow补回来就行。编辑器方面nano 够日常改配置但真要写代码建议装 vim 或者 neovim。vim 的最低限度生存技能就几个i进入插入模式Esc回到普通模式:w保存:q退出:wq保存退出:q!不保存强行退出dd删除整行yy复制整行/关键词搜索。把这十个记牢就能活下来剩下的慢慢学。5. 远程与保活sshd、tmux、后台不被杀5.1 开启 sshd 并用另一台设备登录把手机当服务器用的第一步就是让它能被别的设备连上。装好 openssh 之后pkg install openssh敲sshd启动服务。Termux 的 SSH 服务默认监听 8022 端口不是标准的 22这是为了避免和系统权限冲突记住这个数字能省很多排查时间。连接之前需要知道两样东西用户名和密码。用户名用whoami查输出是u0_a开头的一串字符密码默认是没有的得用passwd命令自己设一个。然后在同一局域网的另一台设备上执行ssh -p 8022 u0_a123手机的IP地址输入密码就能进去了。手机 IP 在设置里的 WiFi 详情能看到或者在 Termux 里用ifconfig查。比密码更好用的是密钥登录。把你电脑上的公钥内容追加到手机端的~/.ssh/authorized_keys文件里然后chmod 600 ~/.ssh/authorized_keys收紧权限之后就能免密登录了。权限这一步不能省SSH 对 authorized_keys 的权限要求很严格权限太松会直接拒绝使用密钥而且报错信息不会明说原因只提示认证失败。5.2 tmux 会话保持sshd启动了、能连上了但只要你断开连接之前跑的进程就全没了——这是新手第二个崩溃点。解决办法是用终端复用器也就是 tmux。装法是pkg install tmux用法记住这几个就够tmux new -s 会话名—— 新建一个命名会话比如tmux new -s work按CtrlB然后按d—— 分离会话进程继续在后台跑tmux ls—— 列出所有会话tmux attach -t 会话名—— 重新接回某个会话在会话内按CtrlB然后按c—— 新建一个窗口CtrlB加数字键切换窗口实际用法是SSH 进去之后先tmux new -s dev在里面启动服务或者跑脚本然后CtrlB d分离直接关掉 SSH 连接也没关系。下次连上去tmux attach -t dev屏幕上还是你离开时的样子日志一直没断。这个体验跟远程桌面完全不一样但对跑长时间任务来说足够了。5.3 唤醒锁与电池优化即使有了 tmuxAndroid 系统本身还是可能把 Termux 的后台进程冻结或杀掉尤其是手机进入深度睡眠之后。这时候需要两样东西配合。一是获取唤醒锁命令是termux-wake-lock执行之后 Termux 会持有一个系统级的唤醒锁阻止设备在任务运行期间休眠。任务结束记得用termux-wake-unlock释放否则会一直耗电。二是去系统的电池设置里把 Termux 的电池优化关掉改成不限制或者允许后台活动。不同厂商的系统叫法不一样有的藏在应用管理 - 权限 - 后台管理里有的需要单独开自启动权限。这两步做完再加上 tmux长时间跑任务基本就稳了。我的经验是还要注意一点手机锁屏之后部分机型会断开 WiFi 来省电导致 SSH 连接莫名中断。如果发现连上之后过一会儿就掉去 WiFi 的高级设置里看看有没有休眠时保持连接之类的选项。6. proot-distro在 Termux 里跑一个完整的发行版6.1 为什么需要 proot前面提过 Termux 用的是 bionic 而不是 glibc很多为 Linux 编译好的软件拿来直接用不了。proot-distro 解决的问题就是这个它在用户态模拟出一个隔离的文件系统环境让你能在 Termux 里装并运行一个标准的 Debian、Ubuntu 或者 Alpine里面是完整的 glibc 环境大部分软件包都能用常规方式安装。它的原理是 proot 这个工具通过拦截系统调用并重写路径实现类似 chroot 的效果但完全不需要 root 权限。代价是性能损失文件操作会比原生慢一些编译大型项目的时候能明显感觉到。所以策略应该是能用 Termux 原生解决的就在原生解决实在装不上的再去 proot 里搞别一上来就全塞到容器里。6.2 安装 Debian 与常用配置安装过程很直接pkg install proot-distro proot-distro list # 查看可安装的发行版 proot-distro install debian proot-distro login debian登录进去之后你会发现提示符变了路径变成了/root这时候apt update用的是 Debian 的仓库装什么都是标准流程。有几个配置我建议进去就做掉换 apt 源、装基础工具apt install nano curl wget git sudo、设置时区。跟外部存储打通是靠 bind 挂载。登录的时候加参数proot-distro login debian --bind ~/storage:/mnt/phone这样在容器里访问/mnt/phone就等于访问手机的公共存储读写文件都不用再拷来拷去非常实用。想每次都自动挂载的话可以写个 shell 函数或者别名放进~/.bashrc。6.3 图形界面与黑屏问题proot 环境里跑图形界面是可行的思路是装一个轻量桌面环境加 VNC 服务端然后用手机上的 VNC 客户端连本机的 5901 端口。流程大致是在容器里apt install xfce4 xfce4-goodies tigervnc-standalone-server配置好 VNC 密码写一个启动 xfce4 的启动脚本然后vncserver :1启动最后用 VNC 客户端连127.0.0.1:5901。黑屏是这一步最常见的问题原因通常有三个一是缺少 dbus 相关组件导致桌面环境启动失败补装dbus-x11一般能解决二是启动脚本里没有正确指定会话类型xstartup 文件里得明确写上启动 xfce4-session三是 VNC 服务其实起来了但客户端连错了端口或者显示号对不上:1对应的是 5901:2对应 5902别搞混。排查黑屏有个很管用的办法先别急着上桌面环境装一个最轻的窗口管理器比如twm或者openbox试试能不能出画面。能出说明 VNC 链路没问题是桌面环境本身的配置问题出不来说明问题在 VNC 或者 X 服务这一层。这样能把排查范围缩小一半。说实话手机上的图形界面体验相当受限小屏幕上点 XFCE 的菜单真的谈不上好用。我个人的建议是图形界面留给偶尔需要看一眼某个 GUI 工具这种场景日常还是老老实实敲命令效率差好几倍。7. 命令速查与自动化脚本7.1 高频命令速查表Termux 里常用的命令跟标准 Linux 高度重合但有几个是它特有的。我把日常使用频率最高的整理成一张表贴在顺手的地方能省不少查文档的时间。用途命令备注更新索引与升级pkg update pkg upgrade每周至少跑一次申请存储权限termux-setup-storage只需执行一次弹窗要点允许换软件源termux-change-repo交互式界面最省事查看架构uname -m装包前的必查项看磁盘剩余df -h装大包前必看看目录占用du -sh 目录配合sort -h找占地大户获取唤醒锁termux-wake-lock跑长任务时用释放唤醒锁termux-wake-unlock用完记得释放省电查看所有会话tmux ls配合 attach 恢复工作现场启动 SSH 服务sshd默认端口 8022顺带说一个概念上的区分经常有人问Termux 里的命令和 Windows 的命令行是不是一回事。完全不是。Windows 的 cmd 和 PowerShell 是另一套体系那些gpedit.msc、ipconfig、清理磁盘空间之类的命令在 Termux 里一个都用不了。Linux 命令的核心是一切皆文件的思路命令之间靠管道|和重定向组合这是两套完全不同的设计哲学别混着记。7.2 termux-api 打通系统能力Termux 有一个特别有意思的扩展叫 termux-api它能让命令行直接调用 Android 的系统功能。装法是两步先pkg install termux-api然后单独安装一个叫 Termux:API 的配套 APK注意这个 APK 必须跟 Termux 主程序来自同一渠道签名不一致会连不上。装完重启 Termux就能用了。能做的事情挺多举几个我实际用过的例子。termux-battery-status输出电池电量、温度、充电状态的 JSON配合脚本可以定时记录termux-notification --title 完成 --content 任务跑完了能在任务结束时弹个通知跑长时间任务时特别实用termux-clipboard-get和termux-clipboard-set读写剪贴板写脚本时可以用它做数据中转termux-toast弹一个一闪而过的提示termux-tts-speak做语音播报配合监控脚本可以在异常时出声提醒。这几个命令的价值在于让脚本能跟手机系统互动而不只是在一个封闭的终端里自娱自乐。比如写一个定时检查某个服务状态的脚本挂了就用通知提醒你这在手机上是很自然的用法。7.3 定时任务与开机自启想在 Termux 里做定时任务cron 是可用的但需要额外启动服务。装termux-services之后用sv-enable crond把 cron 服务启起来然后crontab -e编辑任务表语法跟标准 cron 一致。需要注意的是 Termux 里的 cron 依赖服务进程一直活着所以前面讲的唤醒锁和电池优化设置对它能正常工作是前提条件。开机自启则要靠 Termux:Boot 这个配套应用。装上之后在 Termux 里创建~/.termux/boot/目录把开机要执行的脚本放进去并加上可执行权限chmod x。每次设备重启Termux 会自动运行这个目录下的所有脚本。注意这个功能同样受系统自启动权限限制很多国产系统默认禁止应用开机自启得手动去设置里放开。脚本写多了之后建议在~/.bashrc里定义一些别名和函数把常用的一长串命令缩短。比如把proot-distro login debian --bind ~/storage:/mnt/phone定义成deb敲两个字符就能进容器。这个习惯积累下来日常操作效率会有明显提升。8. 那些没人写进文档的报错8.1 一批真实报错与对应处理前面各节已经散落讲了不少坑这里集中收一批最典型的按我实际遇到的频率排序。~ $ su -m报no su program found on this device. termux does not su—— 这个提示其实是 Termux 的官方态度说明。它的设计前提就是不需要 root因此不提供也不支持su命令。看到这个报错不用去搜怎么在 Termux 装 su正确的思路是换一个不需要 root 就能实现目标的方法绝大多数想用 root 干的事在 Termux 里都有非 root 的替代方案比如权限问题走termux-setup-storage文件系统隔离走 proot。pkg install装完命令找不到 —— 先确认是不是装到了 proot 环境里而你在原生 shell 里敲。原生装的包可执行文件在$PREFIX/bin容器里装的在容器的/usr/bin两套环境互不可见。用which 命令名可以查当前 shell 能找到的路径。GitHub 上单独下载的二进制跑不起来报No such file or directory—— 前面解释过的 bionic 和 glibc 差异问题。用file 文件名看一下它的动态链接器路径如果指向/lib64/ld-linux-x86-64.so.2这类路径说明是给标准 glibc 系统编译的原生 Termux 跑不了。解决办法是找 arm64 静态编译版本或者放进 proot 环境。Termux 升级之后一堆命令报错 —— 大版本升级可能带来依赖变化pkg upgrade只升级了一部分包的时候就会这样。处理方式是再完整跑一次pkg update pkg upgrade让所有依赖关系重新对齐。如果还是不行考虑备份家目录里的重要文件然后重装应用。长时间任务跑到一半进程消失 —— 九成是系统省电策略干的。回头检查唤醒锁有没有加、电池优化有没有关、WiFi 休眠策略有没有调。这几个设置配好之后基本就不会再出现了。8.2 关于卸载与重装的一些经验Termux 的卸载是很彻底的因为所有数据都在应用私有目录里卸载应用等于全部清空。所以在卸载或者换设备之前一定要先把家目录里的东西备份出来。备份可以直接cp -r ~ ~/storage/shared/termux-backup把家目录整个复制到公共存储里重装之后再复制回去。配置文件、脚本、SSH 密钥都在里面恢复之后基本能无缝接着用。需要提醒的是~/.ssh目录复制到公共存储之后权限会变恢复到新环境后要重新chmod 600私钥、chmod 700 ~/.ssh否则 SSH 会以权限过松为由拒绝使用。另外$PREFIX下通过 pkg 装的软件是没法直接备份的那部分只能在新环境重新装所以建议在家目录里维护一个install-list.txt记录自己装过哪些包重装时用xargs pkg install -y install-list.txt一次性装回来能省很多重复劳动。我个人在几台设备上来回折腾之后最大的体会是Termux 这个东西的上限不取决于它自带的命令有多少而取决于你愿不愿意把重复操作脚本化。刚开始都是手敲命令然后慢慢变成写别名再变成写脚本、配定时任务、开机自启最后它就真的变成了一个躺在口袋里、随时能连上的小服务器。这个过程里踩的坑基本都写在上面的章节里了剩下的一些得靠你自己动手才能遇到。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →