apt-get upgradeなどでアップグレードしたパッケージを元のバージョンに戻したい場合があります。例えばGoogle Chromeは頻繁にアップグレードしますが、時々バグを導入してしまっていることがあります。
こういうときの戻しかたについて、色々試した結果一番手っ取り早そうな方法を説明します。
これはUbuntuで試したものですが、Debianでも同様だと思われます。
1. 直前のバージョンを探す#
これは /var/log/apt/history.log を見てください。今回の例では
Upgrade: ... google-chrome-stable:amd64 (140.0.7339.207-1, 141.0.7390.54-1), ...
というのを見つけ、141.0.7390.54-1を140.0.7339.207-1に戻します。
2. 情報収集#
% apt-cache madison google-chrome-stable
としてパッケージの配布元を見ます。
google-chrome-stable | 141.0.7390.54-1 | https://dl.google.com/linux/chrome/deb stable/main amd64 Packages
というのが得られます。次に、
apt-cache show google-chrome-stable | grep "^Filename"
としてパッケージのファイル名を探します。
Filename: pool/main/g/google-chrome-stable/google-chrome-stable_141.0.7390.54-1_amd64.deb
のようなものが得られます。
3. アップグレード前のパッケージのダウンロードとインストール#
上で調べた情報を使ってURLを構築し、パッケージをダウンロードします。
wget https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_1140.0.7339.207-1_amd64.deb
とします。パッケージ配布元のURLとファイル名をくっつけて、バージョンの部分を古いものに置き換えます。これで古いパッケージがダウンロードできるはずです(場合によっては古いものが消されている可能性もありますが、大概の場合はそのまま残っていると思われます)。
あとは dpkg -i でインストールします。
dpkg -i google-chrome-stable_1140.0.7339.207-1_amd64.deb
とします。
ちなみに私が直面した「新しく導入された問題」は https://issues.chromium.org/issues/449370049 のようです。