web-dev-qa-db-ja.com

私はDebianの安定版でした-どのようにしてBullseyeになりましたか?

ばかげた質問かもしれませんが、リモートサーバーが今日長期間ダウンしていたのです。復旧したとき、ダウンタイムが明らかにシステムのアップグレードによるものであることがわかりました。DebianBuster(安定版)からBullseye(テスト版)へのアップグレードです。

私はこのサーバーで唯一のスーパーユーザーであり、しばらくの間は更新の種類をスケジュールしていなかったので、少し混乱しています。テストでは運用マシンを実行していません。また、オペレーティングシステムのバージョンを自動的にアップグレードするようにシステムを意図的に設定していません。私は定期的にaptを使用して個々のパッケージを更新およびアップグレードしますが、完全なリリースのアップグレードは要求しませんでした。

これをトリガーするために行った明らかな構成設定-たとえば、適切なソースを意図せずに変更したなどこれ以上予期しない更新は必要ありません。 (それは価値のあるものとしてヘッドレスMinecraftサーバーであり、人々がプレイしたいときのダウンタイムは悪いです。)

4
dr.nixon

これには2つの原因があります。あなたはそれを使ってどれを見つけることができます:

cat /etc/apt/sources.list /etc/apt/sources.list.d/*
  1. コードネームの代わりにスイートを使用する:
(1) deb http://ftp.debian.org/debian/ buster main
(2) deb http://ftp.debian.org/debian/ stable main

(1)(2)は今日は同等ですが、必ずしもそうではありません。ある日、stablebullseyeを指します。それが起こると、あなたのマシンも自動的に変更されます。制御したい場合は、コードネームbusterを使用します。 testingスイートを確認します。これは2019年7月6日にbusterからbullseyeに切り替わりました。

  1. 複数の分布:
(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がすべての場所で正常に終了するまで、autoremovedist-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がすべての場所で正常に終了するまで、autoremovedist-upgrade--fix-broken installおよびaptを切り替えます。

問題がなければ、/etc/apt/preferences.d/busterを削除します

4
Stewart