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


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


141
2017-12-11 22:41


происхождения


serverfault.com/questions/175504/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
Теперь, если бы кто-то сказал мне, как перечислить установлен вручную пакеты, которые Я еще не удалил. Вздох, Linux. - Aleksandr Dubinsky
@AleksandrDubinsky apt-mark showmanual | less не делает этого? - GKFX
@GKFX Я имел в виду в контексте недавно установленных пакетов. - Aleksandr Dubinsky
@Александр Дубинский. Вам придется использовать comm -12 a b с a сортированная копия apt-mark showmanual а также b отсортированный список из одного из ответов ниже. - GKFX


ответы:


Команда для отображения недавно установленных пакетов, которые были установлены любым способом (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

154
2017-12-11 22:45



проблема с синаптической заключается в том, что она не показывает, что вы делаете с aptitude, apt-get и dpkg, по этой причине +1 для этой опции - hhlp
Эта команда не будет показывать обновления. Используйте программный центр, чтобы увидеть все. - HDave
Возможно, было бы лучше сохранить текстовый файл, подобный этому cat /var/log/apt/history.log | grep "\ install\ " > install.log - CrandellWS
grep " install " /var/log/dpkg.log будет достаточно. Нет необходимости использовать cat, Смотрите также это, - augurar
обратите внимание, что это только для поиска пакетов, которые были недавно установлены. Пакеты, для которых была установлена ​​новая версия, выглядят как upgrade в dpkg.log - Andre Holzner


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


13
2017-12-12 13:09



Эта кнопка истории теперь находится в верхней части графического интерфейса пользователя и может показывать установленные пакеты и обновления. Это должен быть принятый ответ на вопрос, поскольку это единственный ответ, который работает для обновлений. - HDave
Этот вопрос не указывает среду рабочего стола (GUI), но принятый ответ действителен как в сценариях графического интерфейса, так и в не GUI. - msanford
@HDave Определенно не верно, dpkg.log обновляет журналы. - GKFX


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

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

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

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

9
2018-06-05 07:29



Я нашел пакет, который был установлен 2 дня назад в /var/log/dpkg.log, но не в /var/log/apt/history.log, Все еще не знаю, почему ... - Samuel Li


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

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

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

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}'

5
2018-05-26 01:43



Не анализируйте вывод cat команда. И как насчет этого awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log? - Avinash Raj
@AvinashRaj Ваш awk команда печатает пакеты один ниже другой; мой один следующий другой. Вот почему пример вывода может быть полезен время от времени. - Serge Stroobandt


Существует пакет, называемый 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.

2
2017-12-12 02:04



Я не уверен, как wajig помогает перечислять последние пакеты. Я не вижу команды для этого после беглого просмотра команд. Вы знаете, что это за команда? - Ehtesh Choudhury


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

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.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] к первому трубопроводу; он очень гибкий.


2
2017-07-16 12:56



Это приближается. Вещи, которые можно улучшить: 1) показать пакеты в хронологическом порядке, 2) показать более подробную информацию, такую ​​как дата установки / время, версия, возможно даже размер 3) показать все пакеты, установленные с момента установки ОС. - Aleksandr Dubinsky
Удивительно! Не возражаете, если я очищу ваш ответ, чтобы быть более кратким с более подробными пояснениями о каждой команде? - Aleksandr Dubinsky
@AleksandrDubinsky Спасибо за это редактирование; Я скорректировал описание так, чтобы оно соответствовало сделанным вами изменениям. - GKFX
Не возражаете, если я удалю «следующий трюк, ответ на запрос Александра Дубинского», первая команда, которая не полезна, положит хороший заголовок, поместит основную команду сверху, добавит образец вывода и попытается описать все команды участвует? - Aleksandr Dubinsky
В последней команде есть ошибка, потому что grep -F найти частичные совпадения. Например, если python3 , он также будет соответствовать всем библиотекам python3 (python3-click-package), включая те, которые больше не установлены. Более того, grep -Fw не помогает, потому что - является границей слова. - Aleksandr Dubinsky


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


1
2017-12-12 00:51



И в качестве rafalcieslak указывает, эта функция также доступна в Software Center. - belacqua
История Synaptic показывает только то, что вы установили через Synaptic ... совершенно бесполезно. - HDave


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


1
2018-02-13 19:22





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


-1
2018-06-07 00:07



Просто уточнить, просто просмотреть содержимое в /var/log/apt, вам НЕ нужно быть root или с правами администратора. - Samuel Li