Как отменить apt-get удалить?

18

Я знаю, что это забавная ситуация, но я удалил python со всеми связанными программами из Ubuntu, используя sudo apt-get remove python? Очевидно, я могу установить обратно Python, но мне потребуется много времени, чтобы установить все программы, которые я удалил. Может быть, есть какое-то решение?

Благодарность

IgorDiy
источник
Пожалуйста, включите исследование, чтобы убрать голосование против.
Colyn1337
Вот это да! 3-летний вопрос, который помогает восстановить мой компьютер. Так рад, что это было здесь и найдено в Google. Благодарность!
Майкл Коул

Ответы:

26

Это не простой способ, но если вы посмотрите на /var/log/apt/history.log, вы увидите, что было удалено. Просто переустановите каждый пакет, который был удален.

ablackhat
источник
2
Это просто спасло мне жизнь!
Санкет Саху,
3
Я зарегистрировался на serverfault только для того, чтобы подтвердить это, спасибо.
Фил
20

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

echo '#!/bin/bash' > restore
echo sudo apt-get install `grep Remove /var/log/apt/history.log | tail -1 | sed -e 's|Remove: ||g' -e 's|([^)]*)||g' -e 's|:[^ ]* ||g' -e 's|,||g'` >> restore
chmod +x restore 
./restore
tzafrir
источник
спасатель ... должен был понять, что apt remove libboost*это плохая идея
настойчивость
2
Спасибо, ты спас мне жизнь !! Напоминание: НИКОГДА НЕ ЗАПУСКАЙТЕ "sudo apt purge python2.7"
2
Не запускайте sudo apt remove python3ха - ха
ThaJay
Ну, я использовал apt purgeтак разорвать меня, хорошо, что это была новая установка. Было бы хорошо знать, что ключевые (для большинства людей) ОС, такие как netplan, требуют этого. Конечно, он ссылается на него в списке удалений, прежде чем спрашивать, уверены ли вы, но у кого есть время посмотреть и быть уверенным, когда проще просто шлепнуть yключ и returnвашу систему в забвение ...
DeeJayh
5

Я нашел классный трюк с форумов Ubuntu .

В терминале можно запустить следующее:

awk '!/^Start|^Commandl|^End|^Upgrade:|^Error:/ { gsub( /\([^()]*\)/ ,"" );gsub(/ ,/," ");sub(/^Install:/,""); print}' /var/log/apt/history.log

Посмотрите на вывод, затем используйте

sudo apt-get install [packages]

и замените [packages] последней строкой пакетов, которая была возвращена (обратите внимание, что она может переноситься).

рэйлган
источник
Ты спас мой день. Это действительно очень помогло мне.
Хамидулла
1

Посмотрите все пакеты, которые были удалены. Он хранится в /var/log/apt/history.log . Вы можете написать программу оболочки для установки каждого пакета, который был удален. Напишите это на любом текстовом редакторе GNU Emacs, vi, GNU Nano. Выполните это через терминал. Все программы, которые были удалены, будут переустановлены самостоятельно.

user234756
источник
0

Чтобы добавить ответ ablackhat, вы можете скопировать и вставить все после последней команды удаления в /var/log/apt/history.logновый редактор для программистов. Замените Regex :.*?,на (пустая строка) и скопируйте все полученные пакеты, разделенные пробелами. Тогда беги$ sudo apt-get install <paste>

Трент Бинг
источник
0

Обновление восстанавливает большую часть этого, остальное .. вы можете использовать методы, показанные выше. Для обновления просто наберите «sudo apt-get upgrade»

Thom
источник
зачем apt-get upgradeпереустанавливать пакеты, которые были намеренно удалены?
Джеральд Шнайдер
На самом деле это не так уж далеко от идеального ответа на ФП: подождите три года и сделайтеapt-get dist-upgrade
quadruplebucky
-1

если ты

 apt-get install python

Python будет переустановлен со всеми его предпосылками, о чем я предполагаю, о каких программах вы говорите?

Ник М.
источник
Я уже установил Python, но программы, которые в зависимости от него, такие как Zim, GImp и многие другие, не были возвращены ((Даже Gedit не работает
IgorDiy
-1. Не решает вопрос OP в том, что все, что требует Python, также было удалено.
Магеллан