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出力をログに記録 )。
ここで私が改善したいこと:
ii
)は削除するか、最後に表示する必要があります。Rpmベースのシステムでは、rpm -qa
は私が必要としていることを正確に実行します。
試してみてください
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 を参照してください。