O sistema Ubuntu está quebrado após a desinstalação acidental de muitos pacotes

18

Eu acidentalmente removi todos os pacotes começando com o nome jpeg com:

sudo apt-get remove jpeg*

Isso estragou muitas coisas, removeu o Unity, o Firefox, o Flash Player, etc.

De alguma forma, consegui recuperar a área de trabalho e a unidade, mas muitas coisas ainda estão com problemas. Por exemplo, .rpm files e .tag.gz simplesmente não serão abertos.

O que eu quero é uma maneira de consertar tudo o que está errado. Algo que é o equivalente a uma 'instalação de reparo' com um disco do Windows.

Alguma dica, alguém?

    
por Programming Noob 30.01.2013 / 13:24

6 respostas

33

Você pode instalar a tarefa ubuntu-desktop :

sudo apt-get install ubuntu-desktop^

Isto irá instalar todos os pacotes do Ubuntu Desktop padrão que você removeu. Ele não restaurará os pacotes que você instalou que não fazem parte da área de trabalho padrão (ou seja, reinstalará o Unity e o Firefox, mas não o Flash Player).

Para instalar esses pacotes, você pode pesquisar /var/log/apt/history.log e ver exatamente o que você removeu.

Observação: instalar a tarefa ubuntu-desktop^ não é o mesmo que instalar o pacote ubuntu-desktop . O primeiro dará ao APT algumas dicas para resolver dependências envolvendo pacotes virtuais, o último dará ao APT a liberdade de escolher pacotes (e acabará instalando coisas inúteis como ubiquity ).

Por que o problema aconteceu? apt-get remove jpeg* não removerá todos os pacotes que começam com jpeg . Em vez disso, removerá todos os pacotes contendo jpe em seu nome. Isso ocorre porque o apt-get funciona com expressões regulares, de modo que jpeg * significa: tudo que contém jpe seguido por zero ou mais g .

    
por Andrea Corbellini 30.01.2013 / 13:41
6

A melhor maneira de você corrigir esse problema pode ser reinstalar o Ubuntu. (Você deve fazer o backup de seus documentos primeiro, mesmo se você planeja reinstalar sem reformatar).

Se você quiser tentar consertar o sistema, consulte os arquivos de log do gerenciador de pacotes para ver quais pacotes foram removidos e reinstale-os:

  • /var/log/dpkg.log (informação completa, mas difícil de ler)
  • /var/log/apt/history.log (abreviado por irá dizer-lhe todos os pacotes removidos ou modificados - provavelmente a sua melhor aposta)
  • /var/log/apt/term.log (se você removeu os pacotes com apt-get no terminal, isso deve mostrar o que você viu então, incluindo listas de quais pacotes serão removidos - então isso pode ser o melhor caminho )

Reinstalar apenas pacotes cujos nomes começam com jpeg não funcionarão, porque muitos (quase certamente a maioria) dos pacotes que foram removidos foram removidos porque contavam com esses pacotes.

No futuro , recomendo verificar cuidadosamente as consequências da desinstalação de um pacote. Se você estiver trabalhando na linha de comando, sempre será notificado. (A menos que você use a opção -y , nesse caso, geralmente não. Eu recomendo não usar essa opção a menos que você saiba o que está fazendo, especialmente para remoções.)

Uma maneira de verificar as conseqüências de uma operação de gerenciamento de pacotes realizada com apt-get , sem arriscar que elas aconteçam, é executar apt-get -s em vez de sudo apt-get . Isso simplesmente simula a ação especificada e relata quais pacotes serão afetados e como.

    
por Eliah Kagan 30.01.2013 / 13:40
1

Eu corro sudo apt-get purge wine* no Ubuntu 15.10, então não há interface gráfica na opção de login de terminal somente de inicialização.

Como Eliah Kagan sugeriu que eu usei informações de /var/log/apt/history.log Eu rodei o nano no history.log e fiz um script simples que continha sudo apt-get install em todos os pacotes removidos que encontrei na linha:

Purge: evolution:amd64 (3.16.5-1ubuntu3.1), libtotem-plparser18:amd64 (3.10.5-1) ...... etc

Mas primeiro eu tinha manualmente para remover o texto entre todos: e, incluindo o:,

nesta etapa, um novo script seria útil porque os pacotes eram centenas. Depois disso, eu corri o script e removi alguns Unable to locate packages (que eu tinha instalado manualmente). execute o script novamente e é isso. Tudo está funcionando bem ... felizmente

    
por kominato 23.01.2016 / 11:35
0

Instale o ubuntu-desktop pacote

sudo apt-get update && sudo apt-get install ubuntu-desktop

Ele instalará os pacotes necessários para o seu sistema.

    
por Tachyons 30.01.2013 / 13:45
0

Eu acidentalmente removi libssl1.0.0 e minha máquina estava danificada. Para restaurar, eu fiz:

  1. Backup dos registros do que foi removido cp /var/log/apt/term.log ~/libssl.term.log
  2. Exclua as linhas não relacionadas à ação libssl vi ~/libssl.term.log
  3. Se a rede estiver faltando (não é possível ping google.com ), reinicialize no modo de recuperação e ative a rede
  4. Reinstalar pacotes removidos cat ~/libssl.term.log | grep ^Removing | sed -e 's/^Removing //g;s/ (.*$//g;/diversion of/d;/dangling symlinks/d' | xargs sudo apt-get -y install
por Eric Landry 02.08.2018 / 17:22
0

Aqui está um pequeno script python onde você pode escrever a seqüência de pacotes (não utilizável) da sua desinstalação em massa que está em /var/log/apt/history.log . Ele irá mostrar uma string que você pode copiar e colar no comando apt-get install para instalar facilmente todos os pacotes removidos.

import re

apt_str = u"INSERT YOUR PACKAGE STRING HERE, BETWEEN THE QUOTES"

match =  re.findall(r'([\w\d\.-]+).+? \(.+?\)', apt_str)
print " ".join(match)
    
por joaoroque 29.09.2015 / 16:18