発熱量が多くて、夏場止めていた FreeBSD 10.3 テストサーバーを久しぶりに起動しました。
OSのパッチレベルを freebsd-update コマンドで更新した後、ports コレクションも更新しておこうと portsnap コマンドを発行したところ、次のメッセージが表示されて、portsnap に失敗してしまいました。
# portsnap fetch update Looking up portsnap.FreeBSD.org mirrors... 6 mirrors found. Fetching public key from ec2-ap-northeast-1.portsnap.freebsd.org... done. Fetching snapshot tag from ec2-ap-northeast-1.portsnap.freebsd.org... done. Snapshot appears to have been created more than one day into the future! (Is the system clock correct?) Cowardly refusing to proceed any further.
時計が狂っていて HTTPS 通信に失敗している模様。
サーバーの時計を確認してみると、本日は10/21 なのに 9/16 と出て来ます。
% date Sat Sep 16 02:07:54 JST 2017
ボード上の電池も弱っているのかな?
ntpdate コマンドで、時計をタイムサーバーに合わせて、再び portsnape を実行すると、今度は成功。
# portsnap fetch update Looking up portsnap.FreeBSD.org mirrors... 6 mirrors found. Fetching snapshot tag from ec2-ap-northeast-1.portsnap.freebsd.org... done. Fetching snapshot metadata... done. Fetching snapshot generated at Sat Oct 21 09:10:16 JST 2017: daa614c341c6327399b929e5159807aad618ec3714ca1a100% of 77 MB 2034 kBps 00m39s Extracting snapshot... done.
FreeBSD の portsnap に限った話ではありませんが、最近、サーバーとの通信が何でもかんでもSSLになり、端末側の時計が気づかないうちに狂って通信に失敗する現象に出くわします。エラーメッセージに「時計を確認するべきである」と含まれていればいいのですが、「エラー」としか表示されていなくて原因にたどり着くまで時間を浪費することがあります。