Debian でソース URI、リリース、およびセクションとともにインストールされたパッケージをリストする方法は?

Debian でソース URI、リリース、およびセクションとともにインストールされたパッケージをリストする方法は?

(ソース)URIセットがあります。流通と部品私のDebian Wheezy apt設定で有効になっています。これで、各パッケージのソースURI、「リリース」、および各パッケージの現在インストールされているバージョンがインストールされている「セクション」とともにインストールされているすべてのパッケージのリストが必要です。

デフォルトでは出力のようなものを探していますが、dpkg -l説明の代わりにソースURI、展開、およびセクションが表示されます。それは次のとおりです。

||/ Name       Version           Arch  InstalledFrom
+++-==========-=================-=====-===================
ii  package1   1:4.14-1.1+deb7u1 amd64 ftp://ftp.se.debian.org/debian wheezy main
ii  package2   1.7-1             all   ftp://ftp.se.debian.org/debian wheezy/updates main
ii  package3   1.0.25+3~deb7u1   all   ftp://ftp.se.debian.org/debian wheezy non-free
ii  package4   0.9.8~3           amd64 local
ii  package5   7.2.107           i386  local

そのようなパッケージのリストをどのように入手できますか?

良い書式設定はボーナスですが、主にgrep興味深い行の部分文字列に対して何でもすることができます(またはナビゲーションだけでも可能です)。

答え1

またapt-cache policyで説明されています。ブライアンapt-show-versions答えを得るには、とを使用できますapt-forktracer

apt-show-versionsデフォルトでは、インストールされているすべてのパッケージは、ソース、バージョン、およびアップグレード可能かどうかが一覧表示されます。

afl:amd64/experimental *manually* upgradeable from 1.28b-1 to 1.36b-1
agedu:amd64/testing 9723-1 uptodate
devio:armhf 1.2-1 installed: No available version in archive

この-aオプションを使用すると、構成済みのすべてのリポジトリーにインストールされているバージョンと使用可能なすべてのバージョンが一覧表示されます。

afl:amd64 1.28b-1 install ok installed
No stable version
No testing version
No unstable version
afl:amd64 1.36b-1 experimental ftp.fr.debian.org
afl:amd64/experimental *manually* upgradeable from 1.28b-1 to 1.36b-1
agedu:amd64 9723-1 install ok installed
No stable version
agedu:amd64 9723-1 testing  ftp.fr.debian.org
agedu:amd64 9723-1 unstable ftp.fr.debian.org
No experimental version
agedu:amd64/testing 9723-1 uptodate

apt-forktracer標準リポジトリーにないバージョンまたはインストールされているバージョンが、標準リポジトリーで使用可能なバージョンと一致しないパッケージをリストします。

afl (1.28b-1) [Debian: 1.36b-1]
bb (1.3rc1-8.2) [Debian: 1.3rc1-8.1+b1 1.3rc1-8.1+b1]
biew (5.7.3.1-0.1) [SK2: 5.7.3.1-0.1]

答え2

私は特にさまざまな答えをひとつにまとめる自分自身を見つけました。ブライアムスそしてムルの。最後に、私はこの一行の内容を得て、それを使って残りの部分を理解できるように始めることができるほど近づきました。

dpkg-query --showformat '${Package}\n' -W | \
while read package; do \
  apt-cache policy $package | grep -q wheezy/non-free && echo $package ; \
done

apt-cache policy上記には、wheezy / non-freeで報告されているすべてのパッケージの名前がリストされています(完全に正確ではありませんが、現時点では十分に似ています)。スクリプトが出力として何をするのかを調整することはapt-cache policy素晴らしい表形式ではありませんが(少なくとも基本的に)、私が望む結果に合理的に近いはずです。

助けてくれた皆さんに感謝します!

答え3

apt-cache policyあなたは出力を探しています:

➜  ~  apt-cache policy skype
skype:i386:
  Installed: 4.3.0.37-1
  Candidate: 4.3.0.37-1
  Version table:
 *** 4.3.0.37-1 0
        100 /var/lib/dpkg/status
➜  ~  apt-cache policy irssi
irssi:
  Installed: 0.8.17-1
  Candidate: 0.8.17-1
  Version table:
 *** 0.8.17-1 0
        900 http://http.debian.net/debian/ testing/main amd64 Packages
        500 http://http.debian.net/debian/ unstable/main amd64 Packages
        100 /var/lib/dpkg/status
➜  ~  apt-cache policy megasync
megasync:
  Installed: 1.0.39
  Candidate: 1.0.39
  Version table:
 *** 1.0.39 0
        500 http://mega.nz/linux/MEGAsync/Debian_7.0/ ./ Packages
        100 /var/lib/dpkg/status

この場合、インストールされているSkypeのバージョンはどのリポジトリ(ローカルインストールを含む)でも使用できず、irssiはDebianリポジトリからインストールされ、megasyncはサードパーティのリポジトリからインストールされます。

答え4

-lオプションの一つですdpkg-query、他のオプション-W(または--show)もあります。-W出力形式を選択できます。あなたは試すことができます:

dpkg-query --showformat '${Status}\t${Package}\t${Version}\t${Architecture}\t${Origin}\t${Section}\n' -W | 
  column -ts $'\t'

たとえば、

$ dpkg-query --showformat '${db:Status-Abbrev}\t${Package}\t${Version}\t${Architecture}\t${Origin}\t${Section}\n' -W | column -ts $'\t' | head
ii  account-plugin-aim           3.8.6-0ubuntu9.1                amd64  gnome
ii  account-plugin-facebook      0.11+14.04.20140409.1-0ubuntu1  all    gnome
ii  account-plugin-flickr        0.11+14.04.20140409.1-0ubuntu1  all    gnome
ii  account-plugin-google        0.11+14.04.20140409.1-0ubuntu1  all    gnome
ii  account-plugin-jabber        3.8.6-0ubuntu9.1                amd64  gnome
ii  account-plugin-salut         3.8.6-0ubuntu9.1                amd64  gnome
ii  account-plugin-twitter       0.11+14.04.20140409.1-0ubuntu1  all    gnome
ii  account-plugin-windows-live  0.11+14.04.20140409.1-0ubuntu1  all    gnome
ii  account-plugin-yahoo         3.8.6-0ubuntu9.1                amd64  gnome
ii  accountsservice              0.6.35-0ubuntu7.1               amd64  admin

URIは不明ですdpkg。これはaptフロントエンド()の問題だからです。しかし、awk使用または獲得することはそれほど難しくありません。

関連情報