Presumo che Ubuntu (e derivate), distribuzione di GNU/Linux basata su Debian e sviluppata da Canonical, sia il modo in cui l’80% o forse più degli “utilizzatori di PC” si avvicina a questo mondo, parallelo a quello di Windows e OSX, appunto per la sua semplicità di utilizzo.

ubuntu-wallpaper2

E come ogni linuxiano alle prime armi un po’ tutti avremo iniziato ad aggiungere repository a ripetizione e ad installare e disinstallare software finchè, ad un certo punto, il nostro PC avrebbe iniziato a manifestare i primi acciacchi: rallentamenti, impuntamenti improvvisi, funzioni che prima appunto funzionavano ed ora non più.

Ci si trova quindi davanti alla domanda cosmica: “E ora che faccio?”, che la maggior parte delle volte trova risposta in una brutale formattazione.

Il canale Telegram di InTheBit con le migliori offerte techle migliori offerte tech

Seppur il metodo sopra citato sia tutt’ora il mio prediletto, di seguito vi spiegherò passo passo come ripristinare Ubuntu, riportandolo a un sistema come “appena installato”, senza torcere neanche un bit ai vostri file personali.

Schermata del 2015-04-27 15:47:35

Per questa procedura avremo bisogno di una versione del nostro sistema vergine, che sia in formato ISO o che sia su USB (se li usate ancora va bene anche masterizzato su CD/DVD).
In particolare sfrutteremo due file presenti nell’immagine del Sistema Operativo:

  • casper/filesystem.manifest
  • casper/filesystem.manifest-remove

Una volta identificati copiamoli in una posizione a piacere sul nostro pc.
Questi file contengono la lista dei pacchetti presenti nel momento dell’installazione della nostra distribuzione ed il procedimento che vi mostrerò non farà altro che confrontare questi file con i pacchetti installati sul nostro computer, in modo da ottenere una lista dei pacchetti installati dall’utente.

Innanzitutto iniziamo a lavorare su questi due file.
Apriamo il terminale, spostiamoci nella cartella con i due file tramite il comando cd e diamo il comando:
comm -3 <(cat filesystem.manifest | awk '{print $1}' | sort) <(cat filesystem.manifest-remove | sort) > pacchetti_iniziali
In particolare:

  • comm permette di confrontare i due file (il parametro -3 considera solo le righe che appaiono in entrambi i file)
  • cat permette di stampare su standard output il contenuto di un file
  • awk permette di elaborare testi formattati in colonne (il parametro '{print $1}' stampa solo la prima colonna di sinistra)
  • sort permette di ordinare le righe dei file in ordine alfabetico, da dare in pasto a comm, che richiede che i file siano ordinati

Una volta dato questo comando verrà creato il file pacchetti_iniziali che conterrà la lista dei pacchetti preinstallati sul sistema.

Schermata del 2015-04-27 17:23:56

Con la stessa filosofia otteniamo i pacchetti installati attualmente sul nostro pc con il comando:
dpkg --get-selections | awk '{print $1}' | sort > installati.

A differenza del comando precedente qui abbiamo usato il tool dpkg (abbreviazione di Debian package) che con il parametro --get-selections permette di ottenere la lista dei pacchetti attualmente installati.

Ora abbiamo tutti gli strumenti su cui lavorare: facendo infatti la differenza tra i pacchetti installati e quelli preinstallati (insomma, tra installati e pacchetti_iniziali) possiamo ottenere sia i pacchetti aggiunti dall’utente che quelli rimossi. Per farlo useremo lo strumento diff, che permette di confrontare due file riga per riga:
diff -u pacchetti_iniziali installati | grep "^+[^+]" | cut -c 2- > aggiunti

Con questo comando non ci siamo limitati solo al confronto tra i due files, il che ci avrebbe restituito diverse righe precedute da + e -, ma, sfruttando proprio questi simboli, siamo in grado di ottenere la lista dei pacchetti aggiunti, ossia quelli preceduti dal simbolo +, selezionati dal comando grep "^+[^+]".
cut -c 2- ci permette invece di “pulire” l’output in modo da non avere questi + all’inizio di ogni riga.

Allo stesso modo possiamo ricavare i pacchetti rimossi:
diff -u pacchetti_iniziali installati | grep "^-[^-]" | cut -c 2- > rimossi

Ora, se vogliamo rimuovere tutti i pacchetti installati, compresi i propri file di configurazione basterà lanciare il comando sudo apt-get purge $(cat installati), mentre per installare i pacchetti rimossi daremo sudo apt-get install $(cat rimossi).

Al termine del procedimento basterà un riavvio ed avremo la nostra distribuzione come nuova!