特定のインストール済みパッケージがどのリポジトリにインストールされているかどうかを確認するには?

特定のインストール済みパッケージがどのリポジトリにインストールされているかどうかを確認するには?

インストールされた特定のパッケージまたはプログラムがどのリポジトリにインストールされているかどうかを確認するにはどうすればよいですか?私がインストールしたすべてのパッケージを見ることができますdpkg -l。彼らがどこから来たのかを確認する方法はありますか?

答え1

aptパッケージをインポートしたリポジトリは追跡されません。あなたができる最善の方法は、与えられたパッケージを含むリポジトリを決定することですapt理解されます(したがって技術的に最後のapt update実行)。

apt特定のパッケージに対してどのリポジトリが考慮されるかを確認するには、apt policy次のように使用します。

$ apt policy rr
rr:
  Installed: 5.2.0-1
  Candidate: 5.2.0-2
  Version table:
     5.2.0-2 100
        100 http://ftp.fr.debian.org/debian testing/main amd64 Packages
        100 http://ftp.fr.debian.org/debian unstable/main amd64 Packages
 *** 5.2.0-1 100
        100 /usr/var/lib/dpkg/status
     4.4.0-2+b1 500
        500 http://ftp.fr.debian.org/debian stretch/main amd64 Packages

aptこの出力は、次のrrバージョンについて説明します。

  • 4.4.0-2+b1、私が設定したDebian 9(Stretch)リポジトリで利用可能です。
  • 5.2.0-1 は現在インストールされているバージョンで、現在設定されているリポジトリでは使用できません。
  • 5.2.0-2、私が設定したテストと不安定なリポジトリで利用可能です。

リポジトリに一致するバージョンがない場合は、次のようなさまざまな状況で発生する可能性があります。

  • バージョンをホストするために使用されたが、もはやそれをしないリポジトリ(パッケージをアップグレードしておらず、追跡したリポジトリに新しいバージョンがアップロードされた場合に発生します)
  • パッケージがリポジトリからインストールされた後、リポジトリが削除されました。
  • パッケージはリポジトリの外部のソースからインストールされました(この場合、私がインストールしたパッケージはローカルでビルドされたバージョンでした)。

関連情報