要让 BusyBox 编译并支持 script
命令(用于记录终端会话),需要按照以下步骤操作:
1. 下载 BusyBox 源码
git clone https://git.busybox.net/busybox/
cd busybox
或者从官网下载稳定版本:
wget https://busybox.net/downloads/busybox-<version>.tar.bz2
tar -xf busybox-<version>.tar.bz2
cd busybox-<version>
2. 配置 BusyBox
运行菜单配置界面,启用 script
命令:
make menuconfig
启用步骤:
- 进入 Miscellaneous Utilities →
(实际需在菜单中查找)
- 找到
script
选项,按空格键标记为[*]
(选中)。
- 保存配置(默认生成
.config
)。
注意:如果找不到
script
,可能是你的 BusyBox 版本较旧或功能被合并到其他模块。
3. (可选)静态编译
如果需要静态链接(例如嵌入式环境):
make LDFLAGS=-static menuconfig # 重新配置时启用静态链接
4. 编译和安装
make -j$(nproc) # 多线程编译
make install # 默认安装到 ./_install/bin/busybox
生成的二进制文件会包含 script
命令。
5. 验证功能
运行测试:
./busybox script # 直接调用临时编译的二进制文件
# 或安装后使用:
./_install/bin/busybox script session.log
常见问题解决
(1) script
未出现在最终二进制中
- 原因:可能依赖其他选项(如
FEATURE_SCRIPT_FULL
)。 - 解决:在
menuconfig
中搜索相关依赖并启用。
(2) Cross-compiling (交叉编译)
指定工具链前缀(例如 ARM):
make CROSS_COMPILE=arm-linux-gnueabi- menuconfig
make CROSS_COMPILE=arm-linux-gnueabi-
(3) Error: Missing headers/libc
确保已安装基础开发工具链:
sudo apt-get install build-essential libncurses-dev gcc-multilib
附:直接修改 .config (快速方法)
如果熟悉配置项,可以直接编辑 .config
:
sed -i 's/CONFIG_SCRIPT=n/CONFIG_SCRIPT=y/' .config # Enable script
make oldconfig # Apply changes
完成后重新编译即可。
内容由零声教学AI助手提供,问题来源于学员提问