BusyBox 源码下载与版本选择指南
官方渠道
BusyBox 的官方网站是 busybox.net,所有源码和预编译二进制都从这里分发。重要的镜像和衍生版本:
- 主仓库:busybox.net/git 是官方 GIT 仓库的 HTTP 镜像
- GitHub 镜像:github.com 上有 Denys Vlasenko 维护的只读镜像,方便用 git clone
- 源码 tarball:busybox.net/downloads/ 下按版本号归档,开发版以 git tag 形式提交
- 预编译二进制:busybox.net/downloads/binaries/ 按架构分类,提供静态编译的 musl 链接版本
版本号规则
BusyBox 的版本号遵循 主版本.次版本.修订号 的三段式:
- 主版本(如 1.x):BusyBox 自诞生以来主版本号一直停在 1,不代表功能不变,而是开发团队认为还没到可以跳主版本的程度
- 次版本(如 1.36、1.37):每年发布数次,包含新 Applet、重要 bug 修复、可能的功能变动
- 修订号(如 1.36.0、1.36.1):小版本 bug 修复,没有 API 变化
发布线分两条:稳定版(通常是次版本号的偶数)和 开发版(奇数)。嵌入式生产环境选稳定版;Android 应用、极客玩家选开发版获取最新特性。
获取源码的三种方式
# 方式一:tarball(最简单)
wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2
tar xjf busybox-1.36.1.tar.bz2
cd busybox-1.36.1
# 方式二:git clone(适合跟踪更新和提交补丁)
git clone https://busybox.net/busybox.git
cd busybox
git checkout 1_36_stable # 切到稳定分支
# 方式三:直接用 tarball 加补丁(生产环境推荐)
# 官方会在 downloads/fixes-<版本>/ 提供安全补丁
wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2
wget https://busybox.net/downloads/fixes-1.36.1/busybox-1.36.1.patch
tar xjf busybox-1.36.1.tar.bz2
cd busybox-1.36.1
patch -p1 < ../busybox-1.36.1.patch
预编译二进制
如果你不想自己编译,可以直接下载官方预编译版本。按架构分类存放在 downloads/binaries/ 下,常用版本:
| 文件名 | 说明 |
|---|---|
| busybox-i686 | 32 位 x86,可在 64 位系统上运行 |
| busybox-x86_64 | 64 位 x86-64 |
| busybox-armv4tl | 最通用 ARM 版本,适合大多数嵌入式 ARM 芯片和智能手机 |
| busybox-armv7l | 较新的 ARMv7 架构 |
| busybox-aarch64 | ARM 64 位 |
这些二进制都是 musl libc 静态编译,意味着单文件就能运行,不依赖目标系统的动态库。下载后直接 chmod +x 就能用。
建议的版本选择
- 嵌入式生产:最新稳定版(次版本号偶数)+ 全部安全补丁
- Android 应用开发:从 GitHub 镜像拉取最新 master,然后用 Android NDK 交叉编译
- 学习和测试:任意版本都行,开发版有更多新 Applet 可以玩
- 老旧系统兼容:选与目标系统 glibc 版本兼容的 BusyBox 版本,或者用 musl 静态编译彻底规避依赖问题