注:この質問と回答を書いている間、Debian Stableはバスター、 Debian テストは雄牛の目。
私はDebian Stableを使用しており、最新バージョンのパッケージをインストールしたいと思います。 Debian Testで利用可能です。
既存の通念では、そうするための手続きが次の通りだと思います。
- 関連
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
- すべてのパッケージがアップグレードされるのを防ぐには、次の行を作成または
/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つのパッケージがあります。これは、両方のセキュリティ更新プログラムを変更したシステムインストール設定ファイルのおかげで、満足です。