web-dev-qa-db-ja.com

ubuntu / debianのリポジトリからすべてのパッケージを一覧表示します

特定のPPAリポジトリから利用可能なパッケージを確認するコマンドはありますか?

88
opensas

シンプル:

grep ^Package: /var/lib/apt/lists/ppa.launchpad.net_*_Packages 

またはより柔軟:

grep-dctrl -sPackage . /var/lib/apt/lists/ppa.launchpad.net_*_Packages 

より洗練されたクエリの場合、apt-cache policyおよびaptitudeを使用します ここで説明

aptitude search '~O LP-PPA-gstreamer-developers'
65
Tobu
grep Package /var/lib/apt/lists/(repo name)_Packages
22
raerek

これがあなたが探しているものかどうかわかりません:

https://superuser.com/questions/132346/find-packages-installed-from-a-certain-repository-with-aptitude

言われているように、Synaptic Package Managerを使用すると、「Origin」で検索できます。これはプログラマティックではありませんが、探しているものを提供するはずです。

7
beatgammit

古いスレッドですが、役立つかもしれないと思いました。 awk、sort、uniqを使用してパッケージのみを取得し、パッケージリポジトリのチェックサムを破棄します。

grep ^Package /var/lib/apt/lists/<repo you are interested in>* | awk '{print $2}' | sort | uniq
3
luksi1

楽しみのために、またはキャッシュを信頼しない場合は、ソースから宣言されたパッケージをクエリできます。リポジトリは、HTTPまたはFTPのほとんどのWebサイトです。

システムにはソースURLがあり、特定のアーキテクチャやバイナリ/ソースパラメータを照会できます。次に、特定のアーキテクチャのパッケージリストをクエリできます。

たとえば、Pop!_OSで優れたjRiverのメディアプレーヤーMediaCenterを使用しています。設定したstableリポジトリをクエリするには、まずURLを確認します。

$ cat /etc/apt/sources.list.d/mediacenter26.list 
#MC
deb [Arch=i386,AMD64,armhf] http://dist.jriver.com/stable/mediacenter/ jessie main

次に、興味のあるアーキテクチャのリストの場所を取得します。 URLは、パターン<archive_url>/dists/<distro>/Releaseに従って形成されることに注意してください。

$ curl -s http://dist.jriver.com/stable/mediacenter/dists/jessie/Release |
> grep "AMD64/Packages$" |
> cut -d" " -f 4 |
> sort -u
main/binary-AMD64/Packages

最後に、ディストリビューションにアーキテクチャのリストパスを追加し、シグネチャのリストからパッケージ名を抽出します。

$ curl -s http://dist.jriver.com/stable/mediacenter/dists/jessie/main/binary-AMD64/Packages |
> grep "^Package: " |
> cut -d" " -f2 |
> sort -u
mediacenter21
mediacenter22
mediacenter23
mediacenter24
mediacenter25

当然、grep | cut | sortフィルターを好みに合わせて調整または削除してください。 -s(サイレント)パラメータをcurlから削除して、必要に応じて診断を確認します。

...または Synaptic Package Manager を使用します。

0
Vlad Didenko