サポート終了コンポーネントのアーカイブ削除に寄せて

Tue, Mar 26, 2019 in debian using tags debian , release

先日、ミラーアーカイブからDebian7とDebian8のサポート終了コンポーネントが削除されました。すると、Docker使ってる人やCircleCI使ってる人が「ぎゃー!」と叫び始めたという。どうも背景を理解されてる方は少ないようなので、簡単にざっと説明を書きました(ユーザーならともかく、イメージを提供するベンダー側は把握しておいてほしいですけどね…)。

ベースイメージとしてDebian8 “jessie”を使っているという前提で話をします。

  • Debian8はDebian9のリリースに伴って「oldstable」(旧安定版)という扱いになっています。oldstableはstableに比べて限定されたサポートの提供となります。そりゃぁでっかいリポジトリを複数バージョンに渡って長期間メンテナンスなんて難しいですからね。oldstable使ってる時点で色々制限が出てくる、ってもんです。ベストプラクティスとしては「ベースイメージのDebianはstableを使おう」です。
    • え?Ubuntu LTSだってでっかいリポジトリで長期間サポートしてるじゃん、って?…彼らは2000パッケージぐらいのmainコンポーネントはサポートしてるけど、その他の50000パッケージぐらいのuniverseはコミュニティに寄るサポート≒Debianその他から持ってくるよ、という状態なんですよ。知らなかったでしょ?
  • jessie-updatesコンポーネントが無くてビルドがー!という人:-updatesは「stableにおけるパッケージのうち、定期的な更新が必要なものを提供」という位置づけなので、jessieがoldstableになった時点で死んでます。外しちゃえばいいです。
  • (追記) http://security.debian.org/debian-security jessie/updates mainも削除…はしちゃダメです! その行はセキュリティアップデートの取得です(取得先サーバーがsecurity.debian.orgでしょ?) たしかにjessie/updatesというところだけを見たら削除したくなるかもしれませんが、LTSサポートのセキュリティアップデートが降ってくるのを消したらアカンですよ…。
  • jessie-backportsが無くなってギャー!という人:-backportsは「stableへの新しいバージョンの移植」という位置づけのコンポーネントなので、jessieがoldstableになった時点で死んでます。なんで使ってんの?ということです。そもそも新しいバージョンが必要だ、というならoldstable使ってる時点で前提がおかしいですよ?まずはstableに移行しましょう

Debian9がでて早2年近く、そろそろDebian10の足音も聞こえてるので、開発側としてはいまさらDebian8に固執してほしくはない、というのが正直な所。ベースイメージのバージョン移行は計画的に…。