私たちは通常、カスタム スクリプトを使用して、システム インストール後に新しい FreeBSD マシンをセットアップします。これにより、ports ツリーからツールがインストールされ、システム環境がセットアップされます。また、新しくインストールした FreeBSD-8.2 マシンを freebsd-update で FreeBSD-8.2p3 に自動更新する必要もあります。私が知っているように、freebsd-update では、「cron」オプションなしでシェル スクリプトから実行することはできません。そこで、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.
これを解決する機会はありますか?