Skip to content

Xynrin/termux-setup-program

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

termux-setup-program

在 Termux 里一键搭建可离线使用的本地开发环境: Ubuntu (proot-distro) + XFCE 桌面 (Termux:X11) + VSCode + Python / Node / C++

第一次安装需要联网;装完后整套环境完全离线可用。


0. 前置条件

  • Android 设备(aarch64 或 x86_64)
  • 已装 Termux从 F-Droid 或 GitHub release,不要 Google Play)
  • 已装 Termux:X11(同样从 F-Droid 或 GitHub release,选 app-arm64-v8a-debug.apk
  • $HOME 至少 6 GB 空闲

这两个 APK 必须先手动装好,脚本帮不了。


1. 三步安装

整个流程按顺序执行下面三段命令即可。每段跑完会自动 echo 下一段。

Step 1(在 Termux 里)

bash <(curl -fsSL https://raw.githubusercontent.com/Xynrin/termux-setup-program/main/scripts/termux-init.sh)

完成后会写入本地命令 ubuntu(进容器)。继续:

source ~/.bashrc      # 让 ubuntu 命令生效(首次需要)
ubuntu                # 进入 Ubuntu 容器,提示符变成 root@…

Step 2(在 Ubuntu 容器里)

bash <(curl -fsSL https://raw.githubusercontent.com/Xynrin/termux-setup-program/main/scripts/container-init.sh)

这一步最久(5-15 分钟,看网速)。完成后:

exit                  # 退出容器,回到 Termux

Step 3(回到 Termux)

bash <(curl -fsSL https://raw.githubusercontent.com/Xynrin/termux-setup-program/main/scripts/desktop-setup.sh)

完成后会写入本地命令 startde / stopde


2. 日常使用

startde       # 启动桌面:起 X11 + pulseaudio + 进容器跑 XFCE
              # 切到 Termux:X11 APP 即可看到桌面
              # 桌面终端里 code . 启动 VSCode
stopde        # 关掉桌面相关进程
ubuntu        # 进容器命令行(不起桌面)

3. 环境变量(可选)

Step 2(container-init.sh)支持下列 env 控制:

变量 默认 含义
MIRROR aliyun apt 镜像(在所有安装完成后才切换):tuna / ustc / aliyun / none(保留官方源)
SKIP_VSCODE 0 1 跳过 VSCode
SKIP_NODE 0 1 跳过 Node.js
SKIP_PYTHON 0 1 跳过 Python
SKIP_CPP 0 1 跳过 C/C++

用法:

# 比如不要 VSCode + 用 USTC 源
SKIP_VSCODE=1 MIRROR=ustc bash <(curl -fsSL .../container-init.sh)

镜像切换发生在所有安装完成的最后一步——前面的 apt 下载始终走 prot-distro 自带的官方源(最稳)。如果切换失败,脚本会自动回滚到官方源,不会让你陷入"装不上、改不回"的死局。


4. 装了什么

Termux 侧

  • proot-distro / pulseaudio / termux-x11-nightly / git / curl / wget

Ubuntu 容器内

  • 基础:sudo / locales / dbus-x11 / 中文 locale (zh_CN.UTF-8)
  • 桌面:XFCE4 + xfce4-terminal(关掉 compositor,省资源)
  • 字体:Noto CJK + 文泉驿
  • 输入法:fcitx5 + 拼音
  • 工具:git / tmux / htop / ripgrep / fd / jq / neovim / openssh-client / rsync 等
  • Python:python3 / pipx / uv
  • Node:nvm(gitee 镜像)+ LTS + pnpm + yarn(npmmirror 注册表)
  • C/C++:build-essential / clang / cmake / gdb / lldb / ninja / valgrind
  • VSCode:官方 .deb + 自动 --no-sandbox 补丁(兼容 prot)

5. 常见问题

Q: ubuntu / startde 命令找不到? 执行 source ~/.bashrc,或重开 Termux。

Q: 某一步装到一半失败? 重跑那一段就行(每段都用 ~/.termux-setup//root/.termux-setup/ 标记进度,已完成的会跳过)。

Q: VSCode 启动报 sandbox 错? 脚本已加 --no-sandbox。仍报错试:

ubuntu
code --no-sandbox --disable-gpu-sandbox --user-data-dir=$HOME/.vscode-data .

Q: 桌面黑屏?

  1. 确认 Termux:X11 APP 在前台
  2. stopde && startde 重来一次
  3. 看 X11 socket:ls /tmp/.X11-unix

Q: 中文显示成方块? 进容器跑 fc-cache -fv 然后重启桌面。

Q: 输入法不出框? 桌面终端里手动起一下:fcitx5 -d

Q: 想从头来?

proot-distro remove ubuntu
rm -rf ~/.termux-setup
# 重跑 Step 1

Q: 想换 apt 源? 重跑 Step 2,前面加 MIRROR=ustc(或 aliyun / none)。


6. 不在范围内

  • Docker(prot 套娃问题多)
  • JetBrains 系 IDE(吃内存)
  • GPU 硬件加速(保持软件渲染:GALLIUM_DRIVER=llvmpipe
  • Termux 终端本身的中文输入法(只在容器桌面里用 fcitx5)

7. 设计说明

三段脚本完全独立,可单独 curl | bash 执行。每段在顶部内联了简单的 log/run_step 工具,不依赖任何外部库。所有进度标记写在 ~/.termux-setup/(Termux 侧)和 /root/.termux-setup/(容器侧),重跑安全。

About

Termux 一键开发环境:Ubuntu (proot-distro) + XFCE + Termux:X11 + VSCode + Python/Node/C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages