It:Backup Sabayon entropy backup

From Sabayon Wiki
Jump to: navigation, search
Entropy logo.png

Introduzione

Tra le varie funzionalità di Entropy c'è qnche quella di ricreare i pacchetti installati nel sistema come una sorta di backup , abbinando la possibilità di salvare anche il database di Entropy stesso ecco che possiamo creare un vero e prorpio backup "atomico" del sistema. Si potrà tornare indietro per un aggiornamento andato a male o per una reinstallazione solo dei pacchetti interessati.

Le funzioni di equo che andremo ad analizzare sono :

  • rescue (backup|restore)
  • pkg (o smart) (quickpkg)


Gestione del database di Entropy

Entropy permette di salvare il database dei pacchetti e di poterlo riutilizzare quando necessario.

$ equo rescue --help
usage: equo rescue [-h]
                   {check,vacuum,generate,spmuids,spmsync,backup,restore} ...

strumenti di salvataggio del sistema corrente

optional arguments:
  -h, --help            show this help message and exit

action:
 eseguire operazioni avanzate sui pacchetti

 {check,vacuum,generate,spmuids,spmsync,backup,restore}
                       Comandi disponibili
   check               controlla repository pacchetti installati alla ricerca
                       di errori
   vacuum              compatta i pacchetti della repository installati
   generate            rigenera la repository dei pacchetti installati usando
                       il Source Package Manager
   spmuids             rigenera la mappa SPM<->Entropy per gli UID pacchetto
   spmsync             aggiorna la repository dei pacchetti di Entropy
                       installati con i cambiamenti del Source Package
                       Manager
   backup              crea un backup della repository dei pacchetti
                       installati
   restore             ripristina un backup della repository dei pacchetti
                       installati
  • Effettuare il backup del database di Entropy
# equo rescue backup
╠    Esportazione database completata.
╠  @@ Repository backuppata correttamente: entropy_backup___system__.2017619_23h50m33s.backup.bz2

I files di backup vengono salvati in /var/lib/entropy/client/database/{amd64,armv7} a seconda dell'architettura utilizzata.


  • Ripristino del database di Entropy

Nei vari mirrors vengono mantenuti per un certo periodo anche i pacchetti non più disponibili , se non intercorrono lunghi periodi tra un backup e l'altro , è possibile effettuare il downgrade di uno o più pacchetti.

Non effettuare alcun update del database , disabilitare l'applet di aggiornamento prima di ripristinare un database altrimenti verrà sovrascritto con l'ultima versione disponibile !!!

# equo rescue restore
Backup della Repository dei Pacchetti di Entropy installati
╠ Seleziona il repository da ripristinare
╠ [1] [2015-11-22 15:21:28] /var/lib/entropy/client/database/amd64/entropy_backup___system__.20151122_14h21m28s.backup.bz2
╠ [2] [2017-06-19 23:50:54.896494] /var/lib/entropy/client/database/amd64/entropy_backup___system__.2017619_23h50m33s.backup.bz2
╠ [3] [2017-06-19 23:53:20.043222] /var/lib/entropy/client/database/amd64/entropy_backup___system__.2017619_23h52m58s.backup.bz2
Numero selezionato: 3
╠  @@ Repository ripristinata con successo: entropy_backup___system__.2017619_23h52m58s.backup.bz2

Indicare il numero relativo al database da ripristinare.

E' possibile ora aggiornare il sistema (ricordasi di non aggiornare il database dopo il ripristino del backup!)

# equo upgrade --ask


Creare i pacchetti del sistema installato

Entropy permette di gestire i pacchetti precompilati e/o di convertirli in un formato compatibile con portage e viceversa.

$ equo pkg --help
usage: equo pkg [-h] {quickpkg,inflate,deflate,extract} ...

eseguire operazioni avanzate sui pacchetti

optional arguments:
 -h, --help            show this help message and exit

action:
 eseguire operazioni avanzate sui pacchetti

 {quickpkg,inflate,deflate,extract}
                       Comandi disponibili
   quickpkg            generare pacchetti dal sistema installato
   inflate             trasformare i file dei pacchetti SPM in quelli di
                       Entropy
   deflate             trasformare i file dei pacchetti di Entropy in quelli
                       SPM
   extract             estrarre i metadati di Entropy dal pacchetto Entropy


Il sub-comando di equo equo pkg quickpkg permette di creare uno o più pacchetti di un programma o libreiria installato nel sistema.

$ equo pkg quickpkg --help
usage: equo pkg quickpkg [-h] [--savedir <path>] <package> [<package> ...]

positional arguments:
 <package>         nome del pacchetto installato

optional arguments:
 -h, --help        show this help message and exit
 --savedir <path>  directory di destinazione dove salvare i pacchetti
                   generati

Se l'opzione --savedir non è indicata , i pacchetti verranno salvati nella directory /var/tmp/entropy/<categoria>/pacchetto.tbz2

  • Esempio : Creare il pacchetto per il firefox installato (e del pacchetto lingua) :

Questi i pacchetti installati :

# equo q installed firefox -qv
www-client/firefox-53.0.3
www-client/firefox-l10n-it-53.0.3

La sintassi come indicato nell'help del comando di equo sarà :

# equo pkg quickpkg www-client/firefox-53.0.3  www-client/firefox-l10n-it-53.0.3

Oppure combinando i due comandi precedenti in una sola riga (produrrà lo stesso risultato)

# equo pkg quickpkg $(equo q installed -qv firefox)
╠  ## [www-client/firefox-53.0.3] Pacchetto generato: /var/tmp/entropy/www-client/www-client:firefox-53.0.3.befa16f7f24a45f28833530a75e84c3a22097faf~0.tbz2
╠  ## [www-client/firefox-l10n-it-53.0.3] Pacchetto generato: /var/tmp/entropy/www-client/www-client:firefox-l10n-it-53.0.3.e576ee7e963f7c734181cacb4df58c08eccb241c~0.tbz2

Pacchetti dipsonibili nel percorso indicato nell'output. Se i pachcetti salvati hanno dei file di configurazione e questi sono stati modificati , il pacchetto che si otterrà avrà le stesse caratteristiche , questo risulta un buon compromesso per un ripristino a livello "atomico".

Salvare i pacchetti in un percorso alternativo

L'opzione --savedir </nuova/directory/> permette di salvare i pacchetti creati in un percorso diverso da quello di default (ad esempio su un harddisk esterno) , l'unica accortezza è quella di aver già creato la cartella della categoria ; se questo non viene fatto , il comando termina con errore.

  • Esempio creare i pacchetti di firefox in /media/backup/entropy

Per quanto indicato sopra , è obbligo avere /media/backup/entropy/www-client già presente

# mkdir -p /media/backup/entropy/www-client

Oppure combinando qualche comando nel caso non si desideri cercare la categoria di ogni singolo pacchetto nel caso essi siano un pò più numerosi

  • Esempio: Creare i pacchetti installati di firefox e libreoffice creando prima la categoria del pacchetto
# equo q installed firefox libreoffice -qv | awk -F"/" '{print $1}' | uniq | xargs mkdir -p
  • awk -F"/" '{print $1}' - Filtra il nome pacchetto e prende il primo campo prima della slash"/" cioè quello della categoria
  • uniq - Prende un valore unico nel caso l'output contenga più valoi uguali
  • xargs mkdir -p - crea la directory prendedno i valori filtrati che arrivano dalle varie pipe "|"
  • Risultato : Verranno create le directory per le categorie app-office e www-client

Nota per xargs  : Si utilizzerà xargs (vedi xargs --help) per combinare i comandi di equo

I pacchetti da creare risulterebbero i seguenti :

equo q installed firefox libreoffice -qv 
www-client/firefox-53.0.3
www-client/firefox-l10n-it-53.0.3
app-office/libreoffice-5.2.7.2
app-office/libreoffice-l10n-5.2.7.2
app-office/libreoffice-l10n-it-5.2.7.2

Procedere con la creazione dei binari :

# equo q installed firefox libreoffice -qv | xargs equo pkg quickpkg --savedir=/media/backup/entropy
╠  ## [www-client/firefox-53.0.3] Pacchetto generato: /media/backup/entropy/www-client/www-client:firefox-53.0.3.befa16f7f24a45f28833530a75e84c3a22097faf~0.tbz2
╠  ## [www-client/firefox-l10n-it-53.0.3] Pacchetto generato: /media/backup/entropy/www-client/www-client:firefox-l10n-it-53.0.3.e576ee7e963f7c734181cacb4df58c08eccb241c~0.tbz2
╠  ## [app-office/libreoffice-5.2.7.2] Pacchetto generato: /media/backup/entropy/app-office/app-office:libreoffice-5.2.7.2.6fd45fd9002da4db4187b6c3efe02d5e79b1308c~1.tbz2
╠  ## [app-office/libreoffice-l10n-5.2.7.2] Pacchetto generato: /media/backup/entropy/app-office/app-office:libreoffice-l10n-5.2.7.2.52322478b684565d8c403b49c6bee386af83fed9~0.tbz2
╠  ## [app-office/libreoffice-l10n-it-5.2.7.2] Pacchetto generato: /media/backup/entropy/app-office/app-office:libreoffice-l10n-it-5.2.7.2.17a41ddc51ea2a698fdea74c45d4eb14100d03e9~0.tbz2

Creare i pacchetti binari di tutto il sistema

Alla luce di quanto indicato precedentemente , ora ci si appresta a creare i pacchetti binari di tutto il sistema installato. Non implica il salvataggio del bootloader , questo è un sistema di backup a livello "atomico" ripristinabile tutto o un pezzo per volta e necessita di un sistema avviato.

Utilizzare sempre il comando per creare le categorie; se si installano pacchetti con una categoria non ancora presente , questa non sarà presente nella directpry di backup portando in errore il comando.

L'elenco dei pacchetti installati nel sistema si ottiene con :

# equo q list installed -qv


Filtriamo il comando precedente per ottenere la singola categoria

equo q list installed -qv | awk -F"/" '{print $1}' | uniq

Eseguire il comando per creare le categorie (verranno create anche quelle non ancora presenti) in /media/backup/entropy

equo q list installed -qv | awk -F"/" '{print $1}' | uniq | xargs mkdir -p

Ora che le categorie sono tutte presenti , creare i singoli pacchetti binari

equo q list installed -qv | xargs equo pkg quickpkg --savedir=/media/backup/entropy

L'operazione potrebbe richiedere molto tempo , dipende dal numero dei pacchetti installati.

Installare un pacchetto binario

E' sufficiente eseguire il comando di installazione seguito dal nome per intero (compreso dell'esetensione del file) del pacchetto (o dei pacchetti) salvato ; a seconda dalla posizione dove si esege il comando , indicare il percorso assoluto o relativo del file .tbz2 .

# equo i /media/backup/entropy/www-client/www-client:firefox-53.0.3.befa16f7f24a45f28833530a75e84c3a22097faf~0.tbz2 /media/backup/entropy/www-client:firefox-l10n-it-53.0.3.e576ee7e963f7c734181cacb4df58c08eccb241c~0.tbz2

Oppure per tutto il sistema , utilizzando il comando find il quale troverà ogni singolo file nella directory di backup e lo installerà

# find /media/backup/entropy -type f -name "*.tbz2" | xargs equo i --nodeps

Se il povero Entropy dovesse andare in crash con un errore dl tipo "troppi files aperti"

IOError: [Errno 24] Too many open files: '/var/tmp/entropy/add_package_repositoryFQTgao/packages.db'

si può sempre ricorrere ad un ciclo for

# for pkg in $(find /media/backup/entropy -type f -name "*.tbz2") ; do equo i --nodeps $pkg ; done


In aggiornamento....