ばかげた質問かもしれませんが、リモートサーバーが今日長期間ダウンしていたのです。復旧したとき、ダウンタイムが明らかにシステムのアップグレードによるものであることがわかりました。DebianBuster(安定版)からBullseye(テスト版)へのアップグレードです。
私はこのサーバーで唯一のスーパーユーザーであり、しばらくの間は更新の種類をスケジュールしていなかったので、少し混乱しています。テストでは運用マシンを実行していません。また、オペレーティングシステムのバージョンを自動的にアップグレードするようにシステムを意図的に設定していません。私は定期的にaptを使用して個々のパッケージを更新およびアップグレードしますが、完全なリリースのアップグレードは要求しませんでした。
これをトリガーするために行った明らかな構成設定-たとえば、適切なソースを意図せずに変更したなどこれ以上予期しない更新は必要ありません。 (それは価値のあるものとしてヘッドレスMinecraftサーバーであり、人々がプレイしたいときのダウンタイムは悪いです。)
これには2つの原因があります。あなたはそれを使ってどれを見つけることができます:
cat /etc/apt/sources.list /etc/apt/sources.list.d/*
(1) deb http://ftp.debian.org/debian/ buster main
(2) deb http://ftp.debian.org/debian/ stable main
行(1)
と(2)
は今日は同等ですが、必ずしもそうではありません。ある日、stable
はbullseye
を指します。それが起こると、あなたのマシンも自動的に変更されます。制御したい場合は、コードネームbuster
を使用します。 testing
スイートを確認します。これは2019年7月6日にbuster
からbullseye
に切り替わりました。
(1) deb http://ftp.debian.org/debian/ buster main
(2) deb http://ftp.debian.org/debian/ bullseye main
(3) deb http://ftp.debian.org/debian/ testing main
上記のようなものがあれば、Debianは各パッケージのいくつかのバージョンを見るかもしれません。 APT::Default-Release
で/etc/apt/apt.conf
を設定するか、/etc/apt/preferences.d/
で明示的に優先順位を固定しない限り、パッケージの最新バージョンが選択されます。
次の質問は、なぜあなたのsources.list
に奇妙なエントリがあったのですか?ブルズアイでのみ利用可能なパッケージの最新バージョンが必要だったため、行を追加した可能性があります。その場合、apt update
、次にapt install -t testing some-package
という行を追加した可能性があります。しかし問題は、その行を削除して別のapt update
を実行するか、APT::Default-Release
を追加しない限り、testing
へのアップグレードが準備されていることです。
別のオプションはサードパーティのソフトウェアです。 Debianの公式アーカイブに存在しないソフトウェアが*.deb
インストーラを提供することはよくあります。 *.deb
アーカイブにはカスタム/etc/apt/sources.list.d/*.list
が含まれているため、更新を取得できます。 「この依存関係のバージョンXが必要です。ブルズアイに存在することがわかっているので、ブルズアイリポジトリを追加するための行を作成します」と言うのは難しくありません。それはだらしなくなりますが、不可能ではありません。
それで、どのように回復するのですか?この時点で3つのオプションがあります。
1:アップグレードを完了する-最も簡単/最も迅速
2:ダウングレード-成功する可能性が最も高い/最も低い
3:再インストール-最も信頼性が高く、ほとんどのダウンタイム
アップグレードを完了するを行うには、まず/etc/apt/sources.list[.d/]
の奇妙な行を明らかに修正します。次に:
# Make everything 'bullseye'
Sudo sed -i \
-e 's/buster/bullseye/g' \
-e 's/unstable/bullseye/g' \
-e 's/stable/bullseye/g' \
-e 's/testing/bullseye/g' \
-e 's/sid/bullseye/g' \
/etc/apt/sources.list \
/etc/apt/sources.list.d/*
# Upgrade
Sudo apt update
Sudo apt upgrade
Sudo apt dist-upgrade
Sudo apt --fix-broken install
Sudo apt autoremove
upgrade
がすべての場所で正常に終了するまで、autoremove
、dist-upgrade
、--fix-broken install
およびapt
を切り替えます。
ダウングレード(これは失敗する可能性が高いので、十分に強調することはできません):
まずすべてをバックアップします。次に、/etc/apt/preferences.d/buster
を作成します。
Package: *
Pin: release n=buster
Pin-Priority: 1001
次に、ステップ1で行ったようにアップグレードします。
Sudo sed -i \
-e 's/bullseye/buster/g' \
-e 's/unstable/buster/g' \
-e 's/stable/buster/g' \
-e 's/testing/buster/g' \
-e 's/sid/buster/g' \
/etc/apt/sources.list \
/etc/apt/sources.list.d/*
# Upgrade
Sudo apt update
Sudo apt upgrade
Sudo apt dist-upgrade
Sudo apt --fix-broken install
Sudo apt autoremove
upgrade
がすべての場所で正常に終了するまで、autoremove
、dist-upgrade
、--fix-broken install
およびapt
を切り替えます。
問題がなければ、/etc/apt/preferences.d/buster
を削除します