Debianのバックポートからパッケージをインポートすることは、文書化されているとおりに機能しません。

Debianのバックポートからパッケージをインポートすることは、文書化されているとおりに機能しません。

親愛なるコミュニティでこの質問を重複としてマークする前にサイト検索を行いましたが、このような重複する質問が見つからなかったことに注意してください。協会繰り返さない

私は以下の指示に従いました。

この手順に従って、ステップ1は/etc/apt/sources.list次の行を追加して更新することです。

  • deb http://deb.debian.org/debian bookworm-backports main contrib non-free

この手順を完了したら、次を実行してインデックスを更新する必要があります。sudo apt update

これから2つのオプションがあります。

  1. たとえば、バックポートからパッケージを明示的にインストールするには
  • apt install -t bookworm-backports <package>
  1. バックポートから暗黙的にパッケージをインストールする
  • apt install <package>/bookworm-backports

これら2つの方法にはかなりの違いがあります!

最初のアプローチでは、バックポートからパッケージをインストールしますが、その依存関係などを含むバックポートからすべての依存関係を取得するため、パッケージのインストールは「肥大します」。

2番目の方法はよりクリーンでより良いですが、最初の方法とは異なり、依存関係(バックポートではなくデフォルトで)を再利用し、インストールされているデフォルトパッケージのみがbackportsからインポートされるため、Debianでお勧めします。

つまり、2番目の方法は、システムにすでにインストールされている依存関係をダウンロードせずに再利用します。ただし、これが不可能な場合は、バックポートから依存関係を取得します(まれですが)。

私が経験している問題は、-tオプションを使用する最初の方法は常に機能しますが、2番目の方法はまったく機能しないことです。

これがなぜ起こるのか、そして2番目のアプローチをどのように機能させるかを知りたいです。

以下は、テストできる再現可能な2つの例です。

sudo apt install wine/bookworm-backports
sudo apt install passwordsafe/bookworm-backports

以下は、最初の例の出力です。

sudo apt install ワイン/本虫-バックポート

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package wine is a virtual package provided by:
  wine 8.0~repack-4
You should explicitly select one to install.

E: Release 'bookworm-backports' for 'wine' was not found

ご覧のとおり、bookworm-backports何も見つかりませんでした!

ただし-t、次のオプションを使用して実行すると、これが間違っていることを確認できます。

sudo apt install wine -t bookworm-backports

これはうまく機能し、パッケージをインストールする機会を提供します。

質問は簡単です。 2番目の方法(optionsを除く-t)が機能しないのはなぜですか?これを機能させるにはどうすればよいですか?私が何か間違っているのですか?


詳細については、Debian 12(bookworm)を使用しています。

私のsources.list外観は次のとおりです。

deb https://deb.debian.org/debian/ bookworm main
deb-src https://deb.debian.org/debian/ bookworm main

deb http://security.debian.org/debian-security bookworm-security main
deb-src http://security.debian.org/debian-security bookworm-security main

deb https://deb.debian.org/debian/ bookworm-updates main
deb-src https://deb.debian.org/debian/ bookworm-updates main

deb https://deb.debian.org/debian/ bookworm-backports main
deb-src https://deb.debian.org/debian/ bookworm-backports main

答え1

特定wineのインストールの試みに失敗した理由は次のとおりです。wine該当しませんbookworm-backports

あなたの一般的な混乱は理解することができます。 1つの情報がありません。ピン優先順位バックポーティングに関連しています。バックポートされたリポジトリのデフォルトの優先順位は100です。これにより、バックポートされたパッケージが安定したリポジトリ内の同じパッケージの代わりにアップグレードまたはインストール候補にならないようにします。

aptしたがって、それを使用してパッケージをインストールするように要求すると、/bookworm-backportsバックポートされたパッケージが選択されますが、すべての依存関係は優先順位ルールを使用して評価されます。安定したリポジトリのパッケージバージョンは、常にバックポートされたバージョン(存在する場合)よりも優先順位が高く選択されます。場合によっては、aptバックポートのバージョン管理要件が考慮されますが、すべての場合で動作するわけではありません。特に失敗しますwine(Debian 11では、apt install wine/bullseye-backportsすべての依存関係を解決するapt install -t bullseye-backports wine代わりに)。

apt -t bookworm-backports一方、bookworm-backports優先順位を990に一時的に変更すると、バックポートされたパッケージがインストールおよび/またはアップグレード候補になります。あなたが言うように、これはあなたが必要とするよりも多くのパッケージをアップグレードするかもしれませんが、実際にはバックポートされるライブラリパッケージがほとんどないので、一般的に問題にはなりません。とにかく、バックポートされたパッケージ変える元のリリースは安定したリポジトリで提供されるため、結果として生じる膨張が最小限に抑えられます。

これらすべての最終結果はあなたがしなければならないということです

  1. 目的のパッケージが実際にバックポートであることを確認してください(apt policy wine)。
  2. /bookworm-backports試してみてください。
  3. 失敗した場合を使用してインストールします-t bookworm-backports

関連情報