パッケージがどのリポジトリにあるかを調べるにはどうすればよいですか?


147

パッケージがどのリポジトリから来たのかを知ることができるメソッドまたはコマンドはありますか?


1
これはあいまいです。つまり、現在有効になっているリポジトリは指定された名前のパッケージを提供しますか、それとも現在インストールされている名前のパッケージをインストールするためにどのリポジトリが使用されましたか?(どちらも便利です。前者ではなく後者を探しています。)
Reinier Post

回答:


112

必要なコマンド:

  • dpkg -s <package>-インストールしたバージョンを見つけることができます。(ソース
  • apt-cache showpkg <package>-利用可能なパッケージのバージョンのリストが表示されます。バージョンごとに、パッケージのソースがインデックスファイル名の形式で提供されます。

現在インストールされているパッケージのソースを検索する場合は、の出力が必要ですdpkg -s <package>。それ以外の場合は、単に最新バージョンの出力を見ることができますapt-cache showpkg <package>

例:

$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Version: 1.6.2-1ubuntu6
...

$ apt-cache showpkg liferea
Package: liferea
Versions: 
1.6.2-1ubuntu6.1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26

1.6.2-1ubuntu6 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26
...

最初のコマンドから、Lifereaバージョン1.6.2-1ubuntu6がインストールされていることがわかります。2番目のコマンドから、そのバージョンがにリストされていることがわかり/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packagesます。

あまりにも多くの努力がなければ、私は、ソース行が含まれていることを推測することができarchive.ubuntu.comubuntulucid、とmain

そして、確か/etc/apt/sources.listに、次の行が含まれています。

deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse

mac、詳細な回答をありがとう!残念ながら、アンメット依存関係の問題に関する最初の問題には役立ちません:-( libqt4-openglをインストールしようとしていますが、次のパッケージにはアンメット依存関係があります:libqt4-opengl:Depends:libqtcore4(= 4: 4.6.2-0ubuntu5.1)しかし、4:4.7.0〜beta1 + git20100522-0ubuntu1〜lucid1〜ppa1 + appmenu20100624がインストールされます依存:libqtgui4(= 4:4.6.2-0ubuntu5.1)しかし4:4.7。 0〜beta1 + git20100522-0ubuntu1〜lucid1〜ppa1 + appmenu20100624をインストールします
dfme

そこから問題が何であるかを見るのは難しいです。完全な詳細を提供できるように、新しい質問を開く必要があります。その場合、コメントにリンクを残してください。:-)
マイケルクレンショー

4
apt-cache policy <package name>(from:superuser.com/a/236605/37279
franzlorenzon

インストールパッケージはどこのapt-キャッシュ{showpkg、政策}は、実際に表示されますから、インストールされた、またはそれだけでどこからインストールされるだろう、それが照会された時点で?
ロードランシャン

1
後者。私は、一般的にUbuntuの使用している場合はtrusty、パッケージのソースを、一時的に追加しutopic、私にsources.listのバージョン1.20ubuntu3をインストールするためにinit-system-helpers、その後、私から再びレポを削除しsources.listapt-cache showpkg init-system-helpers単に元のパッケージの一覧についてはあるだろうし、apt-cache policy init-system-helpersちょうど明白なことを述べるだろう。
blubberdiblub

103

次のコマンドを使用します。より良い出力があります:

apt-cache policy <Package Name>

Ubuntu 16.04以降では、それを行うためのより短い方法があります。

apt policy <Package Name>

11
これは正解です!mac9416による回答のコマンドには、退屈な解釈とその出力に基づく推測が必要です。詳細についてapt-cache policyは、superuser.com
a / 236605/61370

3
apt-cache policy良いですがapt-cache showpkg、パッケージからMD5合計を比較する必要がある場合があります。参照debsums --changed
15

このpolicyオプションはと比較するときに最も便利ですsources.list
無限など

これは受け入れられた答えであるはずです!@paboukは正しい。この回答は、現在受け入れられているものよりも質問に関連しています。
HEXcube

@ pablo- bianchiが彼の答えで指摘したapt policy <package-name>ように、16.04LTS以降ではさらに簡単なものを使用できます。2018年に14.04LTSがEOLになったら、この回答を編集して新しいコマンドを使用できます。
HEXcube

9

apt Ubuntu 16.04以降

apt-cache policyshowpkgおよびの横に、show覚えやすいサブコマンドを備えた、よりシンプルなものがあります:(aptクラシックと混同しないでくださいapt-*):

apt policy <package> 

または、「APT-Sources:」でapt show <package>始まる行の詳細情報を持つ代替案。

説明:このパッケージは、libapt-pkgライブラリのすべての機能への低レベルアクセスとして、パッケージに関する情報の検索と管理、およびクエリのためのコマンドラインツールを提供します。これらを含めます:apt-getapt-cacheapt-cdromapt-configapt-key

からの基本的なコマンド apt --help

その他の覚えやすいサブコマンド:

  • apt list –パッケージ名に基づいてパッケージを一覧表示する
  • apt search –パッケージの説明を検索
  • apt show –パッケージの詳細を表示する
  • apt update –利用可能なパッケージのリストを更新
  • apt install –パッケージをインストールする
  • apt remove –パッケージを削除する
  • apt purge–パッケージと構成ファイルを削除します。

    パッケージを削除すると、パッケージ化されたすべてのデータが削除されますが、削除が誤った場合に備えて、通常は小さな(変更された)ユーザー構成ファイルが残されます。誤って削除されたパッケージのインストール要求を発行するだけで、その場合の機能が以前のように復元されます。一方、すでに削除されたパッケージに対してパージを呼び出すことにより、これらの残り物を取り除くことができます。これは、ホームディレクトリに保存されているデータや設定には影響しません。

  • apt upgrade –パッケージのインストール/アップグレードによるシステムのアップグレード

  • apt full-upgrade –パッケージの削除/インストール/アップグレードによるシステムのアップグレード
  • apt edit-sources –ソース情報ファイルの編集

apt policy xxxはと同じようapt-cache policy xxxに見えますが、これはおそらくコメントであるはずです。あるいは、少なくとも言及apt show必要があるように思われる-a他のソースからの「追加のレコード」を参照するようにスイッチを
Xen2050

6

悲しいことに、この情報はパッケージのインストール中に記録されません。リポジトリがまだソースリストにあり、リポジトリにまだパッケージがある場合、適切な推測を行うことができます。

grep -l PKG /var/lib/apt/lists/*

シナプスでも、リポジトリを無効にして更新するかどうかはわかりません。



1

これはもう少し正確です:

apt-cache show <packagename> | grep "Version:"

apt-pinningを設定するか、特定のバージョンを明示的にインストールしない限り、通常、最新バージョンがインストールされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.