debian: удалить все пакеты, установленные в определенный день

Я должен удалить все пакеты, установленные в определенный день.

Мое решение – найти файл /var/log/dpkg.log , узнать запись с правильной датой, извлечь имена пакетов и удалить их.

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

Есть ли другой способ сделать это более безопасным / формальным способом?

One Solution collect form web for “debian: удалить все пакеты, установленные в определенный день”

/var/log/apt/history.log обычно лучше использовать по нескольким причинам для этого, один из них заключается в том, что он регистрирует, был ли пакет установлен автоматически для удовлетворения зависимостей или нет. Предположим, что обновления установлены в тот же день, и некоторые из них имеют новые зависимости. Если вы попытаетесь удалить их, apt также рекомендует удалить обновленные пакеты. Вы всегда можете удалить автоматические зависимости удаленных пакетов после использования apt-get autoremove .

Один недостаток /var/log/apt/history.log заключается в том, что он регистрирует только пакеты, установленные через apt (командная строка или менеджер пакетов), а не те, которые установлены непосредственно с dpkg . Другим является то, что журнал ужасен для синтаксического анализа:

 date=2014-02-26 awk '$1=="Start-Date:" && $2=="'"$date"'" && got_date="yes" {} got_date=="yes" && $1=="Install:" && got_date="no" { for(i=2; i<=NF; i++) { if( $i !~ /,|\)/ && $(i+2) !~ /^automatic\)/ ) print $i } }' \ /var/log/apt/history.log | xargs sudo apt-get -s remove 

Удалите -s из apt-get когда вы уверены, что у вас есть то, что вы хотите. Формат даты может отличаться от локали, поэтому проверьте свой журнал, чтобы увидеть.

Кроме того, apt-get autremove не будет удалять пакеты, если другой пакет предлагает / рекомендует их (например, пакет устанавливается как зависимость, но сохраняется из-за предложения). Вот команда, чтобы получить все, будьте осторожны, это может удалить больше, чем вы рассчитывали (для меня это на самом деле хочет удалить среду рабочего стола!):

 date=2014-02-26 awk '$1=="Start-Date:" && $2=="'"$date"'" && got_date="yes" {} got_date=="yes" && $1=="Install:" && got_date="no" { for(i=2; i<=NF; i++) { if( $i !~ /,|\)/ ) print $i } }' \ /var/log/apt/history.log | xargs sudo apt-get -s remove 

Снова удалите -s когда -s счастливы.

  • Может ли пакет .deb удалить другие пакеты?
  • Сканируйте и установите пакеты на Ubuntu вместе с версией
  • Получить файлы для данного пакета
  • Есть ли способ перечислить пакеты с даты, когда они вошли в архив Debian?
  • Почему установка пакета python-minimal также захватывает пакет python на Debian?
  • Слишком много установки и удаления?
  • Менеджер Synaptic и менеджер программного обеспечения не открываются
  • Kdenlive жалуется на отсутствие модуля, который уже установлен
  • Список установленных пакетов только с образа диска
  • Как я могу получить рекурсивно список зависимостей apt пакета с их установленными версиями?
  • Управление пакетами без необходимости разрешения root
  • Interesting Posts

    bash: как вы возвращаете расширения файлов?

    Как выполнить эхо-строку с расширением строки в конце на границе окна?

    Изменить подсказку терминала Ubuntu

    URL с именем хоста не работает, но он работает с IP-адресом

    Мониторинг с использованием rsyslog

    Куда идут сквозняки, когда мут падает?

    grep-слова вокруг токена

    удаление clamav с базой данных очистки

    Могу ли я приостановить процесс резервного копирования с помощью rsync, umount и отключить резервное хранилище, повторно подключить и смонтировать его и возобновить резервное копирование?

    Скрытие в двойных кавычках в сценариях bash

    Проблема установки Fedora 23 в VM с использованием KVM на Linux Mint 17.2

    Как добавить виртуальный IP к сетевому интерфейсу в CentOS?

    Файловая система Linux, которая устарела от старых файлов, когда раздел заполнен

    Альтернатива теперь устаревшим двоичным файлам rfcomm в bluez

    Где я должен копировать-вставить программное обеспечение?

    Linux и Unix - лучшая ОС в мире.