Edited at

Werckerでapt-get updateするとInReleaseファイルの有効期限が切れていると怒られる


概要


  • Wercker上で apt-get update する設定をしていたら、あるとき突然エラーを吐くようになりました。。

  • そのとき調べたことを忘れないようにメモしておきます。(大した内容じゃないけどね)


設定内容


  • Wercker上でテストコードを実行するためにpostgresql-clientをインストールする必要があり、以下のような感じでリポジトリを登録する処理を行っていました。


- script:
name: add repository
code: |
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update


エラー内容


  • 上記の設定で問題なく実行されていたのがあるときエラーを吐くように。。

Reading package lists...

E: Release file for http://security.debian.org/debian-security/dists/stretch/updates/InRelease is expired (invalid since 3d 4h 46min 32s). Updates for this repository will not be applied.
E: Release file for http://deb.debian.org/debian/dists/stretch-updates/InRelease is expired (invalid since 6d 6h 49min 58s). Updates for this repository will not be applied.



  • expired ってあるのでInReleaseファイルを確認しましたが、Valid-Untilは有効期限内でした。

  • サーバタイムがおかしいのか?と思いdateコマンドで出力するように確認しましたが、正しい時刻でした。


とりあえず対応


  • 面倒だったのでとりあえず以下のようにオプション指定して対応しちゃいました。

sudo apt-get -o Acquire::Check-Valid-Until=false update


  • これでちゃんと動くようになります。


気になったのでちゃんと確認した


  • そもそもちゃんと動いていたものが突然動かなくなるのは?。。。 キャッシュ


    • はい。そうでした。。。




Wercker上のCache


  • 以下に記載がありますが、インストール時間短縮などの目的でダウンロードしたファイルなどをWercker側でキャッシュしているようです。(14日間もしくは1GBを超えない範囲で)



  • WerckerのOptions画面からクリア出来ます。



  • image.png

  • image.png


まとめ


  • 上記のようなエラーが出たらcacheをクリアしましょう。

  • Werckerのページにあるようにキャッシュされていたら削除するとかスクリプトで実装しても良いかもですが、それならいっそ Check-Valid-Until=false の設定で良いかもしれない。。

  • 単純に勉強不足でした。。

  • (そろそろWerckerやめたいなー。。)


参考