最近インストールされたパッケージのリストを取得することは可能ですか?


157

apt-getを使用して最後にインストールされたパッケージのリストを取得することは可能ですか?



1
ここで、手動でインストールしたパッケージのうち、まだ削除していないものをリストする方法を誰かが教えてくれたらため息、Linux。
アレクサンドルドゥビンスキー

1
@AleksandrDubinsky apt-mark showmanual | lessはそれをしませんか?
GKFX

@GKFX私は、最近インストールされたパッケージのコンテキストで意味しました。
アレクサンドルドゥビンスキー

@AleksandrDubinskyあなたは使用する必要があるだろうcomm -12 a baのソートコピーapt-mark showmanualb下記の答えの1からソートされたリスト。
GKFX

回答:


180

何らかの方法でインストールされた、最近インストールされたパッケージをリストするコマンド(apt-get、Software Centerなど):

grep " install " /var/log/dpkg.log

出力例:

2010-12-08 15:48:14 install python-testtools <none> 0.9.2-1
2010-12-08 15:48:16 install quickly-widgets <none> 10.09
2010-12-08 22:21:31 install libobasis3.3-sdk <none> 3.3.0-17
2010-12-09 12:00:24 install mc <none> 3:4.7.0.6-1
2010-12-09 23:32:06 install oggconvert <none> 0.3.3-1ubuntu1
2010-12-09 23:34:50 install mpg123 <none> 1.12.1-3ubuntu1
2010-12-09 23:34:52 install dir2ogg <none> 0.11.8-1
2010-12-09 23:34:53 install faad <none> 2.7-4
2010-12-09 23:34:54 install wavpack <none> 4.60.1-1
2010-12-10 11:53:00 install playonlinux <none> 3.8.6

このコマンドを実行して、最近インストールしたパッケージ名のみを一覧表示できますが、

awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log

履歴を一覧表示するコマンドapt-get(注:これはインストールされている依存関係を一覧表示せず、apt-get実行された以前のコマンドを一覧表示するだけです):

grep " install " /var/log/apt/history.log

出力例:

Commandline: apt-get install libindicate-doc
Commandline: apt-get install googlecl
Commandline: apt-get --reinstall install ttf-mscorefonts-installer
Commandline: apt-get install valac libvala-0.10-dev
Commandline: apt-get install libgtksourceview-dev
Commandline: apt-get install python-sphinx
Commandline: apt-get install python-epydoc
Commandline: apt-get install quickly-widgets
Commandline: apt-get install libreoffice3* libobasis3.3*
Commandline: apt-get install mc

シナプスの問題は、aptitude、apt-get、dpkgで何をしたかが表示されないことです。そのため、このオプションの+1
hhlp

このコマンドは更新を表示しません。ソフトウェアセンターを使用してすべてを確認します。
HDave

1
このようなテキストファイルを保存することをおcat /var/log/apt/history.log | grep "\ install\ " > install.log
勧めし

4
grep " install " /var/log/dpkg.log十分であろう。を使用する必要はありませんcat。参照してくださいこれを
8

1
これは、新しくインストールされたパッケージのみを見つけるように見えることに注意してください。新しいバージョンがインストールされたパッケージは、次のように表示さupgradeれますdpkg.log
アンドレホルツナー14

14

Ubuntuのソフトウェアセンターには、インストール/アップグレード/削除されたすべてのパッケージの全履歴が表示されます。左側のリストの下部にある「履歴」をクリックするだけです。


4
この履歴ボタンはGUIの上部にあり、インストールされているパッケージと更新を表示できます。これは、更新に対して有効な唯一の回答であるため、質問に対する受け入れられた回答でなければなりません。
HDave

この質問ではデスクトップ(GUI)環境を指定していませんが、受け入れられた答えはGUIシナリオと非GUIシナリオの両方で有効です。
msanford

@HDave間違いなく、dpkg.log更新を記録します。
GKFX

10

古いパッケージもインストール時間順に並べ替えるには:

grep " install " /var/log/dpkg.log.1 /var/log/dpkg.log

また、非常に長い時間前にインストールされたパッケージの場合:

gunzip -c `ls -tr /var/log/dpkg.log.*.gz` | grep " install "

2日前にインストールされたパッケージを見つけました/var/log/dpkg.logが、ではありません/var/log/apt/history.log。まだ、分からないなぜ...
サミュエル・リー

5

次のトリックは、これを手動でインストールされたパッケージに制限するというAleksandr Dubinskyの要求に答えます。

comm -12 <(apt-mark showmanual | sort) <(grep " install " /var/log/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)
  • comm -12 2つのソートされたファイルに共通の行をリストします。
  • <(command)の出力を含むファイルの名前に展開されますcommand
  • apt-mark showmanual手動でインストールされたパッケージをリストします。すなわち。決して自動削除されるべきではないもの。
  • grep " install " /var/log/dpkg.log 受け入れられた回答から取得されます。

別の方法として、より多くの情報を時系列で表示し、利用可能なすべてのログにアクセスする方法は次のとおりです。

zcat -f /var/log/dpkg.log* | grep " install " | sort > /tmp/dpkg.log
grep -F "`comm -12 <(apt-mark showmanual | sort) <(cat /tmp/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)`" /tmp/dpkg.log | grep \<none\>

grep \<none\>結果を新規インストールに制限します。たとえば、grepを使用grep 2016-0[567]して、最初のパイプラインに追加することにより、検索を3か月の期間に制限できます。それは非常に柔軟です。


これは近づいています。1)パッケージを時系列で表示する、2)インストール日時、バージョン、場合によってはサイズなどの詳細を表示する3)OSのインストール後にインストールされたすべてのパッケージを表示する。
アレクサンドルドゥビンスキー

すごい!各コマンドについての説明をさらに簡潔にするために、回答を整理してもかまいませんか?
アレクサンドルドゥビンスキー

@AleksandrDubinsky編集してくれてありがとう。説明を修正して、行った変更と一致するようにしました。
GKFX

「次のトリックはAleksandr Dubinskyの要求に答えます」というノイズ、役に立たない最初のコマンドを削除し、良い見出しを付け、メインコマンドを先頭に追加し、サンプル出力を追加して、すべてのコマンドを説明しようとしてもかまいません関与?
アレクサンドルドゥビンスキー

1
grep -F部分一致を見つけるため、最後のコマンドにバグがあります。たとえば、python3がインストールされている場合、インストールされpython3-click-packageていないものも含めて、すべてのpython3ライブラリ()に一致します。また、単語の境界であるgrep -Fwため-、助けにはなりません。
アレクサンドルドゥビンスキー

5

すべて1行で。コマンド用

最近インストールされたパッケージ名のみを選択し、すべて1行で印刷します

そのためには、最も投票された回答を次のように変更します。

cat /var/log/dpkg.log |awk '/ install / {printf "%s ",$4}'

これにより、パッケージ名が1行になります。このような行は、sudo apt-get purgeコマンドに簡単に追加できます。

出力例

libgnome-media-profiles-3.0-0 gstreamer0.10-gconf gnome-media gnome-menus librest-0.7-0 libgoa-1.0-common libgoa-1.0-0 libwacom-common libwacom2 ubuntu-docs apg libgnome-control-center1 libgnomekbd-common libgnomekbd7 gnome-control-center-data gnome-icon-theme-symbolic gnome-settings-daemon ubuntu-system-service gnome-control-center gnome-online-accounts gnome-session-bin indicator-power mousetweaks

パッケージを下に一覧表示する

人気のある需要により、ここにパッケージを次々にリストするためのわずかに適合したバージョンがあります:

cat /var/log/dpkg.log |awk '/ install / {printf "%s\n",$4}'

catコマンドの出力を解析しないでください。これはawk '$3~/^install$/ {print $4;}' /var/log/dpkg.logどうですか?
アビナッシュラジ

@AvinashRajこのawkコマンドは、パッケージを上下に印刷します。鉱山の1 別。そのため、出力例が時々役立つことがあります。
セルジュStroobandt

2

wajigと呼ばれるパッケージがあります。コマンドラインを確認してください。これは、私が最初にインストールするものです。aptitudeに似ていますが、コマンドディスパッチャーが機能することを期待するように機能する点が異なります。本当に、それは適性のようなものではありません。以下のコマンドはほんの一部です。

wajig help
Common JIG commands:

 update         Update the list of downloadable packages

 new            List packages that became available since last update
 newupgrades    List packages newly available for upgrading

 install        Install (or upgrade) one or more packages or .deb files
 remove         Remove one or more packages (see also purge)

 toupgrade      List packages with newer versions available for upgrading
 upgrade        Upgrade all of the installed packages or just those listed

 listfiles      List the files that are supplied by the named package
 listnames      List all known packages or those containing supplied string
 whatis         For each package named obtain a one line description
 whichpkg       Find the package that supplies the given command or file

Run 'wajig -v commands' for a complete list of commands.

5
wajig最新のパッケージを一覧表示する方法がわかりません。コマンドをざっと見てから、そのためのコマンドが表示されません。コマンドが何であるか知っていますか?
Ehteshチョードリー

1

DoRの答えに加えて、GUIを好む人のために、Synapticには[ファイル]-> [履歴]メニュー項目があります。


2
ASとrafalcieslakが指摘し、この機能は、同様にソフトウェアセンターで利用可能です。
ベラク

3
Synaptic履歴には、Synapticを介してインストールしたもののみが表示されます...まったく役に立ちません。
HDave

1

dpkgのインストール済みファイルをリストするシェルを次に示します。(すべてのapt / aptitude / software center / synapticインストール済みパッケージが含まれている必要があります)

grep -A 1 "Package: " /var/lib/dpkg/status | \
grep -B 1 -Ee "ok installed|half-installed|unpacked|half-configured|config-files" -Ee "^Essential:yes" | \
grep "Package:" | cut -d\  -f2

これには、インストール日時情報は含まれません。しかし、osのインストールから現在までにインストールされたパッケージの違いを判断するのに役立つかもしれません。


-1

Software CenterまたはSynapticでインストール履歴を表示する際の問題は、コンテンツをコピーして電子メールに貼り付けるのが難しいことです(たとえば、テクニカルサポートに問い合わせるとき!)。別の方法は、ログファイルの内容を/var/log/aptルートとして表示することです。


2
明確にするため、単にでコンテンツを表示するには/var/log/apt、rootである必要はなく、管理者の特権も必要ありません。
サミュエルリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.