APT::Default-Release "stable" は、別のリポジトリを追加した後の自動パッケージのアップグレードを防ぐのに十分ではありません。

APT::Default-Release

注:この質問と回答を書いている間、Debian Stableはバスター、 Debian テストは雄牛の目

私はDebian Stableを使用しており、最新バージョンのパッケージをインストールしたいと思います。 Debian Testで利用可能です。

既存の通念では、そうするための手続きが次の通りだと思います。

  1. 関連deb行を追加します。/etc/sources.list
deb     http://deb.debian.org/debian/ bullseye main non-free
deb-src http://deb.debian.org/debian/ bullseye main non-free
  1. すべてのパッケージがアップグレードされるのを防ぐには、次の行を作成または/etc/apt/apt.conf変更してここに入れる必要があります。
APT::Default-Release "buster";

それからapt install -t testing packagename


しかし、そのDefault-Releaseディレクティブを追加したにもかかわらず、次のように実行すると、私のシステムはまだいくつかのアップデートを提供します apt update

apt upgrade一般的なシステムメンテナンスの一部としてこれらのアップデートを実行するときにこれらのアップデートがインストールされないようにするにはどうすればよいですか?

ベストアンサー1

問題を引き起こすパッケージがインストールまたはアップグレードされました。stable-updates解放する。

このDefault-Releaseディレクティブはリリース優先順位のみを上げますstable。したがって、新しく追加されたtestingリポジトリは同じ優先順位を持ち、stable-updatesバージョン番号が高いため、バージョンをインストールします。testing

stable-updatesこれはまた、バージョンが優先されることをaptに指示したため、将来のリリースバージョンがインストールされないという副作用もありますstable

提供されたバージョンのソースと優先順位を調べるために使用できますapt-cache policy [packagename]


より良い方法は、次を使用することです。修正しやすい

まず、そのAPT::Default-Release "buster";行を削除します/etc/apt/apt.conf(またはその行だけがある場合はファイル全体を削除します)。

/etc/apt/preferences次の行を作成、変更、追加します。

Package: *
Pin: release n=bullseye
Pin-Priority: 50

*次に、()と呼ばれるディストリビューションのすべてのパッケージを見て、bullseye優先順位50を割り当てます。

これはインストールされたパッケージの値(100)より低いためbullseye

また、他のリポジトリにインストールされていないパッケージの値(500)よりも低いです。したがって、パッケージが利用可能になったらアップグレードを続けることはできますが、最新バージョンよりも古いリポジトリの最新バージョンを優先しますbullseye。 (一度見てくださいDebian マニュアルの関連セクションもっと学ぶ。 )

apt updateこれで、誤って何も変更せずに実行できますapt ugprade


注:私のシステムにはまだアップグレードできる2つのパッケージがあります。これは、両方のセキュリティ更新プログラムを変更したシステムインストール設定ファイルのおかげで、満足です。

おすすめ記事