ZBLOG

编译coreutils如何开启script选项

在编译 GNU coreutils 时,script 命令(用于终端会话录制)通常是默认包含的。如果你的编译版本缺少该功能,可能是配置选项或环境问题导致。以下是完整的解决方案:


1. 确认 script 是否已启用

(1) 检查当前安装的 coreutils

which script          # 查看路径(通常为 /usr/bin/script)
script --version      # 检查版本

如果命令存在,则无需重新编译。

(2) 检查源码中的 script 模块

在 coreutils 源码目录中:

ls src/script*        # 确认是否存在 script.c 或相关源文件
grep -r "script" src/ # 搜索源码中的定义

2. 从源码编译并确保启用 script

(1) 获取源码

git clone https://git.savannah.gnu.org/git/coreutils.git
cd coreutils
./bootstrap           # 生成 configure 脚本

(2) 配置时显式启用所有工具

默认情况下,script 会被自动包含,但可通过以下方式强制检查:

./configure --help | grep script   # 查看是否有相关选项(通常没有单独选项)
./configure                       # 使用默认配置(包含 script)

(3)手动验证 Makefile

检查生成的 Makefile,确认 script在构建列表中:

grep "src/script" Makefile        # 应看到类似:src_SCRIPT = src/script

(4)编译并安装

make -j$(nproc)
sudo make install    # 默认安装到 /usr/local/bin/

3.特殊情况处理

(1) script被排除的情况

如果发现 configure阶段排除了 script(罕见),可能因为:

  • 依赖缺失:如缺少 libutempter(某些系统需要它支持终端记录)。
  • 交叉编译限制

解决方案

# Ubuntu/Debian:安装依赖库
sudo apt-get install libutempter-dev

#重新配置和编译
./configure --with-libutempter   #若需显式指定库路径,添加:LDFLAGS="-L/path/to/lib"
make clean && make 

(2)自定义禁用后的恢复

如果之前通过参数禁用了所有额外工具(如 --enable-single-binary),需重置配置:

./configure --disable-single-binary   #允许独立二进制文件(包括 script)

4.验证安装结果

which script                #应输出:/usr/local/bin/script (新安装路径)
/usr/local/bin/script -V    #验证版本是否更新

#测试功能:录制会话到文件 test.log 
script test.log            #输入 exit退出后查看内容。
cat test.log               #应有终端记录输出。

5.调试提示

  • 查看 config.log:
    若编译失败,检查日志中的错误:
less config.log | grep -i "error\|warning\|script"
  • 手动启用调试符号:
    重新编译以获取详细错误信息:
CFLAGS="-g -O0" ./configure && make clean && make 

如有其他问题(如特定系统环境报错),请提供更多细节!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=23472

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?