martedì 12 febbraio 2013

Backup delle sorgenti software (repository)

Può capitare di voler salvare la lista dei repository (sorgenti software) dei pacchetti aggiunta al sistema operativo, ad esempio per clonarli su un altro PC oppure per ripristinarli dopo aver effettuato una formattazione sul pc corrente.
Anzitutto è necessario disporre di un dispositivo di archiviazione esterno, anche di piccole dimensioni, su cui copiare il contenuto dei repository da ripristinare.

Backup delle sorgenti software

Connettiamo il dispositivo al nostro PC, attendiamo che venga riconosciuto ed apriamo il terminale, dove digiteremo il seguente comando:

$cp -rv /etc/apt /media/[mount_point]/apt

Se non sai come si utilizza il terminale consulta la guida Utilizzare il terminale.

sostituendo al posto di [mount_point] il punto in cui è montato il dispositivo. Al termine della copia è possibile rimuovere il dispositivo esterno e metterlo nel PC in cui vogliamo effettuare la copia delle sorgenti software.

In questo modo tutte le sorgenti software verranno copiate sul dispositivo esterno: sia quelle presenti di default all'interno del sistema operativo, ovvero quelle fornite da Ubuntu, sia quelle aggiunte manualmente, ad esempio le PPA (launchpad).

Ripristino delle sorgenti software

Inseriamo ora il dispositivo di archiviazione su cui abbiamo precedentemente copiato le sorgenti software nel PC in cui li vogliamo ripristinare (o nello stesso PC dopo averlo formattato). Aspettiamo che venga riconosciuto ed apriamo il terminale dove daremo:

$
$sudo cp -rv /media/[mount_point]/apt /etc/apt
sudo chmod -Rv 755 /etc/apt

sostituendo al posto di [mount_point] il punto in cui è montato il dispositivo.

N.B: è molto importante che venga dato l'ultimo comando, altrimenti ci saranno problemi nell'esecuzione degli applicativi che permettono di installare i pacchetti (come update-manager).

Vi sarà ora possibile installare tutti i pacchetti contenuti nei repository importati.

Esportazione dei pacchetti su versioni più aggiornate di Ubuntu

Se le sorgenti software che stiamo ripristinando sono di una versione di Ubuntu differente (ad esempio nel caso di aggiornamento del sistema, supponiamo da Precise 12.04 a Quantal 12.10), sarà necessario modificare i repository per adattarli alla versione.
Per farlo bisogna aprire il programma Sorgenti Software dalle Impostazioni sistema e modificare singolarmente le singole voci dei repository sostituendo la versione con quella corretta. Riporto un esempio di linea da aggiornare, in grassetto gli elementi che andranno variati: supponiamo di avere la stringa

deb http://apt.insynchq.com/ubuntu precise non-free #Insync

la stringa corretta dovrà risultare come quanto segue

deb http://apt.insynchq.com/ubuntu quantal non-free #Insync

questa procedura andrà eseguita per tutti i repository aggiunti.

N.B: in questo modo alcuni repository (quelli di default di Ubuntu) non verranno sostituiti. Per sostituirli sarà necessario aprire il file /etc/apt/sources.list (ad esempio dando da terminale sudo nano /etc/apt/sources.list) e modificando in tutti i repository la parola precise con quantal.
La parola da sostituire dipende dalle versioni di Ubuntu, nell'esempio si è supposto l'aggiornamento da Ubuntu 12.04 ad Ubuntu 12.10.