web-dev-qa-db-ja.com

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

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

144
dfme

必要なコマンド:

  • 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 <[email protected]>
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
109

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

apt-cache policy <Package Name>

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

apt policy <Package Name>
101
SuB

Ubuntu 16.04以降のapt

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

apt policy <package> 

または、詳細情報apt show <package>の代替( "APT-Sources:"で始まる行。

説明:このパッケージは、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 –ソース情報ファイルを編集します
8
Pablo Bianchi

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

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

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

6
kanaka
Sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"

ソース

4
sBlatt

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

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

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

1
mchid