インストール日ごとにインストールされたパッケージを一覧表示するには?
Debian/Ubuntu でこれを行う必要があります。他のディストリビューションへの答えも良いです。
特定のコードをコンパイルするために多くをインストールしましたが、インストールする必要があるパッケージのリストを取得したいと思います。
ベストアンサー1
RPMベースの展開(Red Hatなど)は簡単です。
rpm -qa --last
Debianやその他のdpkgベースのディストリビューションでは、特定の質問も簡単です。
grep install /var/log/dpkg.log
ログファイルが置き換えられていない場合は、以下を試してください。
grep install /var/log/dpkg.log /var/log/dpkg.log.1
通常、マニュアルページに対応するフィールドがないため、dpkg
インストールapt
日は追跡されないようですdpkg-query
。
結局のところ、古い/var/log/dpkg.log.*
ファイルはログ循環を通して削除されるため、このアプローチはシステムの完全な履歴を提供することを保証できません。
何度も表示される提案(例:このスレッド/var/lib/dpkg/info
)ディレクトリを見てください。この記事では、次のことを試すことができることを示唆しています。
ls -t /var/lib/dpkg/info/*.list | sed -e 's/\.list$//' | head -n 50
選択に関する質問に答えるための最初のステップは次のとおりです。
日付別にパッケージリストを作成する
$ find /var/lib/dpkg/info -name "*.list" -exec stat -c $'%n\t%y' {} \; | \
sed -e 's,/var/lib/dpkg/info/,,' -e 's,\.list\t,\t,' | \
sort > ~/dpkglist.dates
インストール済みパッケージのリストの作成
$ dpkg --get-selections | sed -ne '/\tinstall$/{s/[[:space:]].*//;p}' | \
sort > ~/dpkglist.selections
リストを2つ追加
$ join -1 1 -2 1 -t $'\t' ~/dpkglist.selections ~/dpkglist.dates \
> ~/dpkglist.selectiondates
何らかの理由でそれは私に多くの違いを印刷しないので、バグがあるか、意味に間違った仮定があるかもしれません--get-selections
。
find . -mtime -<days>
head -n <lines>
必要に応じて、明らかにパッケージを使用または制限し、出力形式を変更できます。
$ find /var/lib/dpkg/info -name "*.list" -mtime -4 | \
sed -e 's,/var/lib/dpkg/info/,,' -e 's,\.list$,,' | \
sort > ~/dpkglist.recent
$ join -1 1 -2 1 -t $'\t' ~/dpkglist.selections ~/dpkglist.recent \
> ~/dpkglist.recentselections
過去4日以内にインストールされた(変更?)選択肢のみが一覧表示されます。
sort
使用されたソート順を確認したら、コマンドを削除してコマンドをより効率的にすることもdpkg --get-selections
できます。find