¿Cómo deshacer apt-get remove?

18

Sé que es una situación divertida, pero eliminé Python con todos los programas asociados de Ubuntu usando sudo apt-get remove python. Obviamente, puedo volver a instalar Python, pero me llevará mucho tiempo instalar todos los programas que eliminé. Tal vez hay alguna solución?

Gracias

IgorDiy
fuente
Incluya un esfuerzo de investigación para eliminar el voto negativo.
Colyn1337
¡Guauu! Una pregunta de 3 años, que está ayudando a restaurar mi computadora. Me alegro mucho de que haya estado aquí y lo haya encontrado en Google. ¡Gracias!
Michael Cole

Respuestas:

26

No hay una manera fácil, pero si mira /var/log/apt/history.log puede ver lo que se eliminó. Simplemente reinstale cada paquete que se eliminó.

ablackhat
fuente
2
¡Simplemente me salvó la vida!
Sanket Sahu
3
Me registré con serverfault solo para votar esto, gracias.
Phil
20

Acabo de cometer este error, puede ejecutar los siguientes comandos para deshacer la eliminación de paquetes Esto extraerá la información de los paquetes eliminados del archivo de registro y los reinstalará

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
fuente
salvavidas ... debería haberme dado cuenta de que apt remove libboost*era una mala idea
Persistencia
2
¡Gracias, me salvaste la vida! Recordatorio: NUNCA EJECUTE "sudo apt purge python2.7"
2
No corras sudo apt remove python3jaja
ThaJay
Bueno, solía apt purgeromperme, bueno, fue una instalación nueva. Sería bueno saber que los sistemas operativos clave (para la mayoría de las personas), como netplan, requieren esto. Claro que hace referencia a él en la lista de eliminación, antes de preguntar si está seguro, pero quién tiene tiempo para mirar y estar seguro cuando es más fácil golpear la yllave y returnel sistema en el olvido ...
DeeJayh
5

Encontré un truco genial en los foros de Ubuntu .

Es posible ejecutar lo siguiente en una terminal:

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

Mire la salida, luego use

sudo apt-get install [packages]

y reemplace [paquetes] con la última línea de paquetes que se devolvió (tenga en cuenta que puede ajustarse)

cañón de riel
fuente
Salvaste mi día. Realmente me ayudó mucho.
Khamidulla
1

Busque todos los paquetes que se desinstalaron. Se almacena en /var/log/apt/history.log . Puede escribir un programa de shell para instalar cada paquete que se eliminó. Escríbalo en cualquier editor de texto GNU Emacs, vi, GNU Nano. Ejecútelo a través de la terminal. Todos los programas que se desinstalaron se reinstalarán solos.

usuario234756
fuente
0

Para agregar a la respuesta de ablackhat, puede copiar y pegar todo después del último comando de eliminación en /var/log/apt/history.logun nuevo editor de programadores. Regex reemplace :.*?,con (cadena vacía), y copie todos los paquetes separados por espacios resultantes. Entonces corre$ sudo apt-get install <paste>

Trent Bing
fuente
0

La actualización restaura la mayor parte, el resto ... puede usar las técnicas que se muestran arriba. Para actualizar simplemente escriba "sudo apt-get upgrade"

Thom
fuente
¿Por qué debería apt-get upgradereinstalar paquetes que se han eliminado a propósito?
Gerald Schneider
En realidad, no está tan lejos de una respuesta perfecta al OP: espera tres años y hazloapt-get dist-upgrade
quadruplebucky
-1

si tu

 apt-get install python

Python se reinstalará con todos sus requisitos previos, que es lo que supongo que fueron todos los programas asociados de los que habla.

Nick M.
fuente
Ya instalé Python, pero los programas que dependían de él como Zim, GImp y muchos otros no fueron revertidos ((Incluso Gedit no funciona
IgorDiy
-1. No resuelve la pregunta del OP porque todo lo que necesita Python también se eliminó.
Magellan