Как удалить много пакетов, установленных в определенное время?

Вот ситуация: скажем, в 17:00, я установил много пакетов, я вижу их в истории программного обеспечения ubuntu. Также я могу видеть их в файле журнала dpkg, используя метод, предоставляемый этим потоком. Мой вопрос: как я могу их легко удалить. Их так много, я не могу удалить их один за другим в синаптическом.

Поток, который я завязал, может объяснить метод. Тем не менее, я не вижу времени, указанного в команде, потому что я не хочу удалять другие пакеты, установленные в другое время.

1
задан 13 April 2017 в 15:24

2 ответа

/var/log/dpkg.log перечисляет все команды установки с отметками времени, просто выполните grep. Кроме того, /var/log/apt/history.log перечисляет всю активность apt-get, включая пакеты, установленные или удаленные за один раз.

2
ответ дан 24 May 2018 в 09:22
  • 1
    Я до сих пор не знаю, как, не могли бы вы объяснить более конкретно? как я могу вытащить все имена пакетов, но без временных штампов и другой бесполезной информации, такой как статус? – buzhidao 17 April 2014 в 15:26
  • 2
    Я уверен, что вы узнаете имя хотя бы одного пакета, который был установлен, скажем, пакет xyz. Выполнение grep xyz /var/log/apt/history.log даст вам строку, начинающуюся с Install, в которой перечислены все пакеты, которые были установлены в то время, с номерами версий. Скопируйте эту строку в текстовый редактор, разделите номера версий и запятые, оставив все имена пакетов в одной строке. Теперь в терминале введите sudo apt-get remove и вставьте эту строку после него. Это должно удалить все пакеты, которые были непреднамеренно установлены в это время. – Jos 17 April 2014 в 15:34

Если вы установили это через apt, вы можете использовать /var/log/apt/history.log. Это структура такова:

Start Date: YYYY-MM-DD HH:MM:SS
Commandline: apt-get install package1 package2 package3 . . .
Install: library1 libary2 package1 package2
End-Date: YYYY-MM-DD HH:MM:SS

Зная, что мы можем использовать awk для поиска конкретной даты и времени, опустите одну строку ниже, чтобы избавиться от строки установки apt-get, оставив только список пакеты. Например, вот пример команды:

awk -F':' '/2015-06-05 16:02:43/ {getline; gsub("apt-get install",""); print $2}' /var/log/apt/history.log

Вы можете добавить канал в xargs apt-get remove, чтобы удалить эти пакеты.

awk -F':' '/2015-06-05 16:02:43/ {getline; gsub("apt-get install",""); print $2}' /var/log/apt/history.log | xargs apt-get remove

0
ответ дан 24 May 2018 в 09:22

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

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