(ソース)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
使用または獲得することはそれほど難しくありません。