最初に「/usr/sbin/freebsd-update.fixedfetch」を実行します
Poudriereは、上記のメッセージでユーザーを混乱させないように、(おそらく存在しない)更新をインストールするように指示する前に、freebsd-updateが更新を検出したかどうかを確認する必要があります。
〜/ git / poudriere#grep'Run。* first '`which freebsd-update` echo "最初に '$ 0install'を実行します。" echo "最初に '$ 0フェッチ'を実行します。"
これはfreebsd-update
から来ています。
レポートにこれ以上のコンテキストがないと、これがどこにどのような条件で表示されているのかわかりません。
問題は、jail.shが/usr/sbin/freebsd-update.fixed fetch install
です。 fetch
が更新の必要がないことを検出した場合(たとえば、セキュリティアドバイザリがまだない新しいリリースである場合)、 install
は紛らわしいメッセージを出力します。
解決策は、 /usr/sbin/freebsd-update.fixed fetch
を実行し、更新がフェッチされたかどうかを確認してから、 /usr/sbin/freebsd-update.fixed install
です。
更新がフェッチされたかどうかを確認するにはどうすればよいですか?
/var/db/freebsd-update/f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install
がシンボリックリンクであるかどうかを確認します。
私はむしろそのようなレイヤー違反をしたくなくて、Poudriereをこのようなfreebsd-updateの内部ファイルに依存させたくありません。 代わりに、メッセージをsedします(ttyチェックなどの他のコードで行うように)。
Poudriereがフェッチが実行されたかどうかを検出できる場合、freebsd-updateがメッセージを出力するのはなぜですか?
freebsd-updateがメッセージを出力するのはなぜですか
freebsd-update fetch install
はfreebsd-update fetch; freebsd-update install
同義語だからです。
そうですが、poudriereは更新がフェッチされたかどうかを検出できるので、 freebsd-update install
も同様に検出でき、フェッチされたものがない場合は無意味なメッセージを出力しないはずです。 単純なmtime比較は、 pkg update
場合と同様に、最後のフェッチが一定期間古くなった後にのみメッセージを表示することで機能します。
はい、freebsd-updateはおそらくそれを処理するはずです。 私が最初にそうしなかった理由は、更新を盲目的にダウンロードしてインストールするように人々に勧めたくなかったからです。
しかし、この時点で、freebsd-updateを修正しても、poudriereは古いfreebsd-updateコードを数年間呼び出すので、poudriereに削除を教えると、混乱を避けることができます。
最も参考になるコメント
はい、freebsd-updateはおそらくそれを処理するはずです。 私が最初にそうしなかった理由は、更新を盲目的にダウンロードしてインストールするように人々に勧めたくなかったからです。
しかし、この時点で、freebsd-updateを修正しても、poudriereは古いfreebsd-updateコードを数年間呼び出すので、poudriereに削除を教えると、混乱を避けることができます。