Можно ли получить список самых последних установленных пакетов?

Можно ли получить список пакетов, которые были установлены совсем недавно с помощью apt-get?

Команда для отображения списка недавно установленных пакетов, которые были установлены любым способом (apt-get, Центр программного обеспечения и др.):

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

Пример вывода:

2010-12-08 15:48:14 install python-testtools <none> 0.9.2-12010-12-08 15:48:16 install quickly-widgets <none> 10.092010-12-08 22:21:31 install libobasis3.3-sdk <none> 3.3.0-172010-12-09 12:00:24 install mc <none> 3:4.7.0.6-12010-12-09 23:32:06 install oggconvert <none> 0.3.3-1ubuntu12010-12-09 23:34:50 install mpg123 <none> 1.12.1-3ubuntu12010-12-09 23:34:52 install dir2ogg <none> 0.11.8-12010-12-09 23:34:53 install faad <none> 2.7-42010-12-09 23:34:54 install wavpack <none> 4.60.1-12010-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-docCommandline: apt-get install googleclCommandline: apt-get --reinstall install ttf-mscorefonts-installerCommandline: apt-get install valac libvala-0.10-devCommandline: apt-get install libgtksourceview-devCommandline: apt-get install python-sphinxCommandline: apt-get install python-epydocCommandline: apt-get install quickly-widgetsCommandline: apt-get install libreoffice3* libobasis3.3*Commandline: apt-get install mc

Центр программного обеспечения Ubuntu показывает всю историю всех пакетов, которые были установлены / обновлены / удалены. Просто нажмите "История" в нижней части списка слева.

Чтобы увидеть также старые пакеты, отсортированные по времени установки:

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

И для пакетов, установленных очень давно:

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

Следующий трюк отвечает на просьбу Александра Дубинского ограничить это установленными вручную пакетами:

comm -12 <(apt-mark showmanual | sort) <(grep " install " /var/log/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)
  • comm -12 список строк, общих для двух отсортированных файлов.
  • <(command) расширяется до имени файла, содержащего выходные данные command.
  • apt-mark showmanual список пакетов, установленных вручную; т.е. те, которые никогда не должны быть автоматически удалены.
  • grep " install " /var/log/dpkg.log взято из принятого ответа.

Альтернативой, отображающей дополнительную информацию в хронологическом порядке и предоставляющей доступ ко всем доступным журналам, является:

zcat -f /var/log/dpkg.log* | grep " install " | sort > /tmp/dpkg.loggrep -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] к первому конвейеру; он очень гибкий.

Все в одной строке; для использования командой

Выберите и распечатайте только недавно установленные имена пакетов, все в одной строке.

Для этого измените ответ, набравший наибольшее количество голосов, на:

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

В результате получается одна строка имен пакетов.Такая строка может быть легко добавлена к 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}'

Существует пакет под названием ваджиг Проверьте это в командной строке, это первое, что я сейчас устанавливаю. Как aptitude, за исключением того, что он работает так, как вы ожидаете от диспетчера команд. Так что на самом деле это не похоже на способности. Приведенные ниже команды - это лишь небольшое подмножество.

wajig helpCommon 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 fileRun 'wajig -v commands' for a complete list of commands.

Вот некоторая оболочка для перечисления установленных файлов 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

Это не включает информацию о времени и дате установки. Но может быть полезно при определении любых различий в пакетах, установленных с момента установки ОС до текущего.

>В дополнение к ответу Дора, для тех, кто предпочитает графический интерфейс, в Synaptic есть пункт меню "История файлов".

Проблема с просмотром истории установки в Software Center или Synaptic заключается в том, что трудно скопировать / вставить содержимое в электронное письмо (например, при обращении в службу технической поддержки!). Альтернативой является просмотр содержимого файлов журнала в /var/log/apt как корень.

Теперь, если бы только кто-нибудь сказал мне, как перечислить * установленные вручную * пакеты, которые * я еще не удалил.* Вздох, Линукс.

@AleksandrDubinsky apt-mark showmanual | less этого не делает?

@GKFX Я имел в виду в контексте недавно установленных пакетов.

@AleksandrDubinsky Вам нужно было бы использовать comm -12 a b с a отсортированной копией apt-mark showmanual и b отсортированным списком из одного из ответов ниже.

@GKFX Я думаю, было бы здорово, если бы вы развили эту идею в ответ.

@AleksandrDubinsky Я уже закончил.

Я установил пакеты, но я не уверен, все ли из перечисленных для установки были установлены. Случается ли когда-нибудь, что некоторые пакеты не устанавливаются?