Як скасувати apt-get remove?


18

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

Спасибі


Будь ласка, включіть наукові зусилля, щоб усунути голосування.
Colyn1337

Оце Так! 3-річне запитання, яке допомагає відновити комп'ютер. Тож радий, що це було тут і знайдено на Google. Спасибі!
Майкл Коул

Відповіді:


26

Існує непростий спосіб, але якщо ви подивитеся на /var/log/apt/history.log, ви можете побачити, що було видалено. Просто перевстановіть кожен видалений пакет.


2
Це просто врятувало мені життя!
Санкет Саху

3
Я зареєструвався на сервері за замовчуванням просто для того, щоб підтвердити це, дякую.
Філ

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

рятувальник ... мав усвідомити, що apt remove libboost*це погана ідея
Наполегливість

2
Спасибі, ти врятував мені життя !! Нагадування: НІКОЛИ РУН "sudo apt purge python2.7"

2
Не sudo apt remove python3
бігай

Добре, що я 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]

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


Ти врятував мені день. Мені це справді дуже допомогло.
Хамідулла

1

Знайдіть усі пакунки, які ви видалили. Він зберігається за адресою /var/log/apt/history.log . Ви можете написати програму оболонки, щоб встановити кожен видалений пакет. Напишіть це в будь-який текстовий редактор GNU Emacs, vi, GNU Nano. Виконайте це через термінал. Усі програми, які було видалено, будуть перевстановлені власноруч.


0

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


0

Оновлення відновлює більшу частину його, решту .. Ви можете використовувати методи, показані вище. Для оновлення просто введіть "sudo apt-get upgrade"


чому слід apt-get upgradeперевстановити пакети, які були цілеспрямовано видалені?
Джеральд Шнайдер

Насправді це не так далеко від ідеальної відповіді на ОП: зачекайте три роки і зробітьapt-get dist-upgrade
чотиримісний

-1

якщо ти

 apt-get install python

Python буде перевстановлений з усіма його передумовами, і це те, про що я припускаю, що це всі пов'язані з вами програми, про які ви говорили?


Я вже встановив Python, але такі програми, де залежно від нього, такі як Zim, GImp та багато інших, не були повернені ((Навіть Gedit не працює
IgorDiy

-1. Не вирішує питання ОП у тому, що все, що потребує Python, також було видалено.
Магеллан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.