apt:特定のソースからインストールされたパッケージクエリ

apt:特定のソースからインストールされたパッケージクエリ

会社のプライベートaptリポジトリからインストールされているパッケージのリストを取得しようとしています。

これは働きます:

#!/bin/bash
fqdn=$1

for pkg in $(dpkg-query --show | awk '{print $1;}'); do
  if apt-cache showpkg $pkg | grep -q $fqdn; then
    echo $pkg
  fi
done

ただし、〜3466()パッケージがインストールされているシステムでそれを実行するにはdpkg -l | wc -l1分45.812秒かかります。 「インストールされたパッケージをローカルで検索」がユーザーに表示されるのに時間がかかりすぎます。

もっと良い方法がありますか?


私は交互に行を読み取ろapt-cache showpkgうとします。これはCLIインターフェイスが不安定で15分35.913秒かかるという警告です。apt showAPT-Sources:

ベストアンサー1

パッケージを繰り返さないでください。

dpkg -l | awk '/^ii/ { print $2 }' | xargs apt-cache showpkg |
awk "/^Package:/ { package = \$2 } /$1/ { print package }" | uniq

私のシステムはこれに数秒かかり、6,000を超えるパッケージをインストールして/var/lib/apt直接使用しません。

いくつかの制限があります。特にどんなアイテムなのか確認しません。バージョン現在インストールされているバージョンはリポジトリで使用でき、Debianはパッケージが実際にインストールされているリポジトリを確認する方法を提供しません。

おすすめ記事