Как я могу показать историю управления пакетами apt-get через командную строку?

Я новичок Ubuntu и пробовал различные работы, связанные с не установленным флэш-памятью, или не имея обновленную версию хрома или хрома и т. д., чтобы получить музыку Amazon для работы в Chrome и Chromium. В конце концов пошел в firefox и пошел добавлять ons> plug ins> ... установить ударную вспышку, чтобы всегда активировать, и теперь ее работа прекрасна.

1
задан 30 April 2016 в 21:51

4 ответа

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

Добавьте эту настраиваемую функцию в свой ~/.bashrc:
### pars for fun: install | remove | rollback
function apt-history(){

      case "$1" in
        install)
              grep 'install ' /var/log/dpkg.log
              ;;
        upgrade|remove)
              grep $1 /var/log/dpkg.log
              ;;
        rollback)
              grep upgrade /var/log/dpkg.log | \
                  grep "$2" -A10000000 | \
                  grep "$3" -B10000000 | \
                  awk '{print $4"="$5}'
              ;;
        *)
              cat /var/log/dpkg.log
              ;;
      esac
}
И вызовите ее в терминале следующим образом:
kreso@h17:~$ apt-history install
2013-08-06 14:42:36 install gir1.2-nautilus-3.0:amd64 <none> 1:3.8.2-0ubuntu1~ubuntu13.04.1
2013-08-06 14:42:36 install python-nautilus:amd64 <none> 1.1-3ubuntu1
2013-08-06 14:42:37 install insync-nautilus:all <none> 1.0.20
2013-08-07 14:41:37 install powertop:amd64 <none> 2.1-0ubuntu1
2013-08-07 18:44:10 install libdiscid0:amd64 <none> 0.2.2-3build1
2013-08-07 18:44:11 install sound-juicer:amd64 <none> 3.5.0-0ubuntu1

Взято отсюда

18
ответ дан 25 May 2018 в 23:28

Вы также можете использовать следующую команду для списка недавно установленных пакетов

grep "\ install\ " /var/log/dpkg.log
5
ответ дан 25 May 2018 в 23:28
  • 1
    еще лучше: grep "\ install\ " /var/log/apt/history.log, если вам нужно скопировать и вставить список в apt-get – mchid 27 July 2015 в 22:53

Если вы хотите, чтобы эти пакеты были установлены и впоследствии не удалены, попробуйте это:

comm -23 <(grep "apt-get install" /var/log/apt/history.log | sed 's/.* //' | sort) \ 
<(grep "apt-get remove" /var/log/apt/history.log | sed 's/.* //' | sort) 

Это установки минус любое совпадение удаляет.

Ссылки: [!d3 ] comm: https://stackoverflow.com/a/11963862/338303 <(grep...) синтаксис: https://unix.stackexchange.com/questions/73931/redirecting-multiple-commands-as-input [ ! d4]

2
ответ дан 25 May 2018 в 23:28
  • 1
    +1: Хороший однострочный, но действителен только для последнего периода вращения журнала. Кроме того, вместо sort используйте sort -u в обоих случаях, чтобы избежать появления повторяющихся строк, например, в пакете типа oracle-java8-installer и многих других. – Cbhihe 24 July 2016 в 10:58

Вот как вы на самом деле это делаете, скажем, mutter:

_P=mutter &&
(cat /var/log/dpkg.log{,.1};zcat /var/log/dpkg.log.*.gz) |
egrep --text "^[^ ]* [^ ]* (configure|install|remove|status [^ ]*|trigproc|upgrade) $_P[: ]" |
sort --reverse | less

Использование dpkg.log захватывает операции, которые apt-get не видит.

Выход:

2016-12-20 09:47:35 status unpacked mutter:amd64 3.22.2-2ubuntu1~ubuntu16.10.1
2016-12-20 09:47:35 status installed mutter:amd64 3.22.2-2ubuntu1~ubuntu16.10.1
…
1
ответ дан 25 May 2018 в 23:28
  • 1
    Обратите внимание, что тройные обратные ссылки здесь не работают так, как вы думаете. – edwinksl 21 December 2016 в 03:01

Другие вопросы по тегам:

Похожие вопросы: