web-dev-qa-db-ja.com

すべてのパッケージのソート可能なリスト(dpkg)

dpkgを使用するシステムにインストールされているすべてのパッケージをダンプしたいと思います。

今まではdpkg -lを使っていました。

ただし、欠点が1つあります。結果を並べ替えても意味がありません。

頭:

root@aptguettler:~# LANG=C dpkg-query -l| sort | head
+++-===========================================================-=================================================-============-================================================================================
Desired=Unknown/Install/Remove/Purge/Hold
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
ii  a11y-profile-manager-indicator                              0.1.10-0ubuntu3                                   AMD64        Accessibility Profile Manager - Unity desktop indicator

尾:

root@aptguettler:~# LANG=C dpkg-query -l| sort | tail
rc  texlive-publishers-doc                                      2015.20160320-1                                   all          TeX Live: Documentation files for texlive-publishers
rc  texlive-science                                             2015.20160320-1                                   all          TeX Live: Natural and computer sciences
rc  texlive-science-doc                                         2015.20160320-1                                   all          TeX Live: Documentation files for texlive-science
rc  tpconfig                                                    3.1.3-15                                          AMD64        touchpad device configuration utility
rc  ttf-indic-fonts-core                                        1:0.5.14ubuntu1                                   all          Core collection of free fonts for languages of India
rc  ttf-punjabi-fonts                                           1:0.5.14ubuntu1                                   all          Free TrueType fonts for the Punjabi language
rc  unity-lens-friends                                          0.1.3+14.04.20140317-0ubuntu1                     AMD64        Friends scope for unity
rc  webaccounts-extension-common                                0.5-0ubuntu2.14.04.1                              AMD64        Ubuntu Online Accounts browser extension - common files
rc  xfonts-mathml                                               6ubuntu1                                          all          Type1 Symbol font for MathML
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend

この出力の履歴はetckeeperを介して保持します(回答に関連する質問 etckeeperでhwinfo出力をログに記録 )。

ここで私が改善したいこと:

  • アスキーアートのラインはニースではありません。を削除する必要があります。
  • 最初の2文字(たとえば、ii)は削除するか、最後に表示する必要があります。

Rpmベースのシステムでは、rpm -qaは私が必要としていることを正確に実行します。

1
guettli

試してみてください

dpkg --get-selections | grep -v deinstall

出力に正確なバージョンのパケットが必要な場合は、次のようにすることができます。

dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'

これにより、列2と3のみが出力されます。これには、インストールされているパッケージのみが表示され、アンインストールされたパッケージなどは表示されません。

編集:別のオプションはdpkg-queryです:

dpkg-query --show --showformat='${Package} ${Version}  ${Architecture} ${db:Status-Abbrev} \n'

ここで、-showformat(または-f)は、表示する列を定義します。この場合、パッケージ名、バージョン、アーキテクチャ、および最後の短いステータス(「ii」や「rc」など)、「\ n」を定義します。改行です。

ちなみに、「ii」はインストールされたパッケージを定義し、「rc」はアンインストールされたパッケージです。そのため、grepとawkを使用してアンインストールされたパッケージを除外しました。

気になる場合は、次のように列幅を追加することもできます。

dpkg-query --show --showformat='${Package;-50} ${Version;-40}  ${Architecture;-5} ${db:Status-Abbrev} \n'

負の列幅は方向が左であることを意味し、正は右を意味します。

ただし、幅がパッケージ名の文字数よりも小さい場合、パッケージ名は短くなりますのでご注意ください。

どの目的でリストが必要かはよくわかりません。読みやすいリストが必要な場合は、awkやその他のコマンドに問題はありません。別のマシンにインストールするソフトウェアの「バックアップ」が必要な場合は、dpkg --get-selections(配管なし)が進むべき道です。 https://wiki.debian.org/ListInstalledPackages を参照してください。

3
Broco