我们通常在系统安装后使用自定义脚本来设置新的 FreeBSD 机器,它从端口树安装工具并设置系统环境。我们还需要通过 freebsd-update 自动将新安装的 FreeBSD-8.2 机器更新到 FreeBSD-8.2p3。据我所知,freebsd-update 不允许我从没有“cron”选项的 shell 脚本执行它。所以我尝试预加载一个自定义程序来欺骗freebsd-update:
${CAT} > /tmp/isatty.c <<EOF
int isatty(const int fd) { return 1; }
EOF
${CC} -shared -fPIC -o /tmp/isatty.so /tmp/isatty.c
${ENV} LD_PRELOAD=/tmp/isatty.so LESS="-E" ${FREEBSD_UPDATE} fetch install < /dev/null
通过这个调整,我可以成功地从我的自定义脚本运行 freebsd-update,但是在 freebsd-installer 从更新服务器获取文件之后,我收到了以下错误消息:
Fetching metadata signature for 8.3-RELEASE from update5.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... gunzip: standard input is a terminal -- ignoring
metadata is corrupt.
我有机会解决这个问题吗?