Il sistema Ubuntu è rotto dopo aver disinstallato accidentalmente molti pacchetti

18

Ho rimosso per errore tutti i pacchetti che iniziano con il nome jpeg con:

sudo apt-get remove jpeg*

Questo ha rovinato un sacco di cose, rimosso Unity, Firefox, Flash player ecc.

In qualche modo sono riuscito a recuperare il desktop e l'unità ma poi molte cose sono ancora buggy. Ad esempio .rpm file e .tag.gz non si apriranno affatto.

Quello che voglio è un modo per sistemare tutto ciò che non va. Qualcosa che è l'equivalente di una 'installazione di riparazione' con un disco di Windows.

Qualche consiglio, qualcuno?

    
posta Programming Noob 30.01.2013 - 13:24

6 risposte

32

Puoi installare l'attività ubuntu-desktop :

sudo apt-get install ubuntu-desktop^

Questo installerà tutti i pacchetti del desktop standard di Ubuntu che hai rimosso. Non ripristinerà i pacchetti installati che non fanno parte del desktop standard (cioè reinstallerà Unity e Firefox, ma non Flash Player).

Per installare questi pacchetti, puoi esaminare /var/log/apt/history.log e vedere esattamente cosa hai rimosso.

Nota: l'installazione di ubuntu-desktop^ attività non equivale all'installazione del pacchetto ubuntu-desktop . Il primo darà a APT alcuni suggerimenti per risolvere dipendenze che coinvolgono pacchetti virtuali, quest'ultimo darà a APT la libertà di scegliere i pacchetti (e finirà per installare cose inutili come ubiquity ).

Perché si è verificato il problema? apt-get remove jpeg* non rimuoverà tutti i pacchetti che iniziano con jpeg . Rimuoverà invece tutti i pacchetti contenenti jpe nel loro nome. Questo perché apt-get funziona con espressioni regolari, quindi jpeg * significa: tutto contenente jpe seguito da zero o più g .

    
risposta data Andrea Corbellini 30.01.2013 - 13:41
6

Il modo migliore per risolvere questo problema potrebbe essere la reinstallazione di Ubuntu. (È consigliabile eseguire prima il backup dei documenti, anche se si pianifica di reinstallare senza riformattare.)

Se vuoi provare a sistemare il sistema, guarda i file di log del gestore pacchetti per vedere quali pacchetti sono stati rimossi e reinstallali:

  • /var/log/dpkg.log (informazioni complete, ma difficili da leggere)
  • /var/log/apt/history.log (abbreviato da ti dirà che ogni pacchetto è stato rimosso o modificato in altro modo - probabilmente è la tua migliore scommessa)
  • /var/log/apt/term.log (se hai rimosso i pacchetti con apt-get nel terminale, questo dovrebbe mostrare ciò che hai visto allora, inclusi gli elenchi di quali pacchetti sarebbero stati rimossi - quindi questo potrebbe essere il modo migliore )

Reinstallare solo i pacchetti i cui nomi iniziano con jpeg non funzionerà, perché molti (quasi certamente la maggior parte) dei pacchetti che sono stati rimossi sono stati rimossi perché si sono basati su quei pacchetti.

In futuro , consiglio di verificare attentamente le conseguenze della disinstallazione di un pacchetto. Se stai lavorando dalla riga di comando, sarai sempre informato. (A meno che tu non usi l'opzione -y , nel qual caso di solito no. Mi raccomando di non usare quell'opzione a meno che tu non sappia cosa stai facendo, specialmente per le rimozioni.)

Un modo per verificare le conseguenze di un'operazione di gestione dei pacchetti eseguita con apt-get , senza rischiare che si verifichino, è di eseguire apt-get -s anziché sudo apt-get . Questo semplicemente simula l'azione specificata e segnala quali pacchetti sarebbero interessati come risultato e come.

    
risposta data Eliah Kagan 30.01.2013 - 13:40
1

Eseguo sudo apt-get purge wine* su Ubuntu 15.10, quindi nessuna interfaccia grafica sull'opzione di login del terminale di avvio.

Come suggerito da Eliah Kagan, ho utilizzato informazioni da /var/log/apt/history.log Corro nano su history.log e ho creato uno script semplice che conteneva sudo apt-get install su tutti i pacchetti eliminati che ho trovato alla riga:

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

Ma prima dovevo manualmente rimuovere il testo tra tutti: e, incluso il:,

in questo passaggio un nuovo script sarebbe utile perché i pacchetti erano centinaia. dopo di che eseguo lo script e rimosso alcuni Unable to locate packages (che avevo installato manualmente). eseguire di nuovo lo script e questo è tutto. Tutto funziona bene ... per fortuna

    
risposta data kominato 23.01.2016 - 11:35
0

Installa ubuntu-desktop pacchetto

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

Installerà i pacchetti necessari per il tuo sistema.

    
risposta data Tachyons 30.01.2013 - 13:45
0

Ho rimosso per sbaglio libssl1.0.0 e la mia macchina è stata danneggiata. Per ripristinare, l'ho fatto:

  1. Esegui il backup dei registri di ciò che è stato rimosso cp /var/log/apt/term.log ~/libssl.term.log
  2. Elimina le righe non correlate all'azione libssl vi ~/libssl.term.log
  3. Se manca la rete (impossibile ping google.com ), quindi riavvia in modalità di ripristino e attiva la rete
  4. Reinstalla pacchetti rimossi 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
risposta data Eric Landry 02.08.2018 - 17:22
0

Ecco un piccolo script python in cui puoi scrivere la stringa del pacchetto (inutilizzabile) dalla tua disinstallazione di massa su /var/log/apt/history.log . Produrrà una stringa che è possibile copiare incolla nel comando apt-get install per installare facilmente tutti i pacchetti rimossi.

import re

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

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

Leggi altre domande sui tag