リポジトリーのスナップショットサービス登場
2024年4月19日、「Ubuntu」はリポジトリーのスナップショットを提供する「Ubuntu Snapshot Service」を発表しました。Ubuntu Snapshot Service
「Ubuntu Snapshot Service」は「Ubuntu」の公式リポジトリーのスナップショットを提供するサービスです。もちろんその公式リポジトリーに配置されているdebパッケージのスナップショットも利用できます。
「Ubuntu」ではサポート期間中、「Ubuntu」の公式リポジトリーを通じてソフトウェアのアップデートをユーザーに提供しています。
これらのソフトウェアはdebパッケージとして提供されており、ユーザーは「ソフトウェアの更新」等を通じてパッケージをダウンロードし、自身の環境にそのパッケージを展開してソフトウェアをアップデートしています。
任意の時点のパッケージを利用可能に
ソフトウェアのアップデートでは常に最新版のパッケージがダウンロードされ、ソフトウェアがアップデートされています。カジュアルユーザー含め一般的なユーザーはそれで十分なのですが、ソフトウェアの開発者やテスター、「Ubuntu」を利用してサービス等を展開している企業では事情が異なります。
例えばソフトウェアのアップデート後に問題が発生した場合、原因の切り分けが必要になります。
この時アップデートされたソフトウェア側に問題がないか調査することになりますが、以前のバージョンに戻すには、ひと手間必要になります。
aptコマンドで任意の時点のパッケージをインストール可能
そこで「Ubuntu Snapshot Service」が役に立ちます。「Ubuntu Snapshot Service」では任意の時点のリポジトリー及びパッケージを利用できるため、従来よりも簡単にソフトウェアのバージョンを元に戻して作業することができます。
2023年3月1日以降のパッケージが対象
「Ubuntu Snapshot Service」では、2023年3月1日以降のパッケージでスナップショットを利用できます。また少なくとも過去2年間のスナップショットが保持されますが、要望や需要があれば更に期間の延長が検討される予定です。
スナップショットを利用可能なUbuntuのバージョン
「Ubuntu Snapshot Service」は「Ubuntu 23.10」以降のバージョンで利用可能です。また今後「apt」のアップデートにより、以下のバージョンでも利用可能になります。
- Ubuntu 20.04 LTS(apt 2.0.10)
- Ubuntu 22.04 LTS(apt 2.4.11)
Ubuntu Snapshot Serviceを利用するには
「Ubuntu Snapshot Service」の利用方法は、以下を参照してください。Ubuntu 24.04 LTS
「Ubuntu 24.04 LTS」では自動的にスナップショットサービスが有効になります。Ubuntu 23.10以前
「Ubuntu 23.10」以前のバージョンを利用している場合、例えば以下のようにソースリストでスナップショットサービスを有効化する必要があります。ポイントは「[snapshot=yes]」の追記です。
deb [snapshot=yes] http://archive.ubuntu.com/ubuntu/ jammy main restricted
deb [snapshot=yes] http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted
deb [snapshot=yes] http://security.ubuntu.com/ubuntu jammy-security main restricted
deb [snapshot=yes] http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted
deb [snapshot=yes] http://security.ubuntu.com/ubuntu jammy-security main restricted
aptコマンドでスナップショットを指定
後はaptコマンドで以下のようにスナップショットを識別するIDを指定すれば、その時点のパッケージをインストールできます。
apt install hello --update --snapshot 20240301T030400Z
スナップショットのIDは、以下のようにリポジトリーの日付をUTCで指定するようになっています。
- YYYYMMDDTHHMMSSZ
例えば「2023年3月2日03:04(UTC)」を指定する場合、スナップショットのIDは以下のようになります。
- 20230302T030400Z
その他スナップショットの活用方法は、上記リンク先を参照してください。