Como desfazer o apt-get remover?

18

Eu sei que é uma situação engraçada, mas eu removi o python com todos os programas associados do Ubuntu usando o sudo apt-get remove python? Obviamente, posso instalar o python de volta, mas levarei muito tempo para instalar todos os programas que removi. Talvez haja alguma solução?

obrigado

IgorDiy
fonte
Inclua esforços de pesquisa para remover votos negativos.
precisa saber é o seguinte
Uau! Uma pergunta de 3 anos que está ajudando a restaurar o meu computador. Tão feliz que isso foi aqui e encontrado no google. Obrigado!
Michael Cole

Respostas:

26

Não existe uma maneira fácil, mas se você olhar para /var/log/apt/history.log, poderá ver o que foi removido. Apenas reinstale cada pacote que foi removido.

ablackhat
fonte
2
Apenas salvou minha vida!
Sanket Sahu
3
Registrei-me no serverfault apenas para voto a favor, obrigado.
Phil
20

Acabei de cometer este erro. Você pode executar os comandos abaixo para desfazer a remoção dos pacotes. Isso extrairá as informações dos pacotes removidos do arquivo de log e os 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
fonte
salva-vidas ... devia ter percebido apt remove libboost*foi uma má idéia
Persistência
2
Obrigado, você salvou minha vida !! Lembrete: NUNCA EXECUTAR "sudo apt purge python2.7"
2
Não corra sudo apt remove python3haha
ThaJay
Bem, eu costumava apt purgeme rasgar, ainda bem que era uma instalação nova. Seria bom saber que os principais sistemas operacionais (para a maioria das pessoas), como o netplan, exigem isso. Certifique-se de referenciá-lo na lista de remoção, antes de perguntar se você tem certeza, mas quem tem tempo para procurar e ter certeza de quando é mais fácil bater na ychave e returnno sistema no esquecimento ...
DeeJayh
5

Encontrei um truque legal nos fóruns do Ubuntu .

É possível executar o seguinte em um terminal:

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

Olhe para a saída e use

sudo apt-get install [packages]

e substitua [packages] pela última linha de pacotes retornada (observe que ele pode quebrar).

Metralhadora
fonte
Você salvou meu dia. É realmente realmente me ajudou.
Khamidulla
1

Procure todos os pacotes que foram desinstalados. Ele é armazenado em /var/log/apt/history.log . Você pode escrever um programa shell para instalar cada pacote que foi removido. Escreva em qualquer editor de texto GNU Emacs, vi, GNU Nano. Execute-o através do terminal. Todos os programas desinstalados serão reinstalados por eles mesmos.

user234756
fonte
0

Para adicionar à resposta do ablackhat, você pode copiar e colar tudo após o último comando de remoção /var/log/apt/history.logem um novo editor de programadores. Regex substitua :.*?,por (string vazia) e copie todos os pacotes separados por espaço resultantes. Então corra$ sudo apt-get install <paste>

Trent Bing
fonte
0

A atualização restaura a maior parte, o restante .. você pode usar as técnicas mostradas acima. Para atualizar, digite "sudo apt-get upgrade"

Thom
fonte
por que apt-get upgradereinstalar pacotes que foram propositalmente removidos?
Gerald Schneider
Na verdade não é assim tão longe de uma resposta perfeita para o OP: esperar três anos e fazerapt-get dist-upgrade
quadruplebucky
-1

se vocês

 apt-get install python

O Python será reinstalado com todos os pré-requisitos, e é isso que eu suponho que todos os programas associados que você está falando?

Nick M.
fonte
Eu já instalei o Python, mas os programas que onde dependente dele como Zim, Gimp e um monte de outras pessoas não foi revertida ((Mesmo Gedit não está funcionando
IgorDiy
-1. Não resolve a questão do OP, pois tudo o que precisa do Python também foi removido.
Magellan