# [HowTo] Crearsi package binari di backup del sistema

## FonderiaDigitale

Ok. avete il vostro sistema bello che installato e funzionante, e finalmente proprio come lo volete voi.

A questo punto sarebbe una scocciatura rifare tutto da capo se si sbaglia qualche emerge, o semplicemente in caso di reinstallazione.

Probabilmente avrete gia' creato qualche pacchetto binario con emerge -b durante l'installazione, ma non li avete di tutto.

Avere package binari e' importante specie nel caso di dover ripristinare una versione di un pacchetto dopo il merge di una versione che non funziona.

Esempi importanti sono gcc, glibc, xfree.

Per fare questo basta questa riga:

```
for i in `qpkg -nc -v -I` ; do if [ ! -f /usr/portage/packages/All/`echo $i | sed "s/^.*\///"`.tbz2 ]; then quickpkg =$i; fi; done
```

Preparate un po' di spazio sul disco perche ve ne servira'.

una volta fatto, potreste voler masterizzare quella directory su un cd/dvd per rimettere tutto come prima in caso di casini  :Smile: 

----------

## assente

L'argomento mi interessa molto, e non credo di essere l'unico, di solito facevo quickpkg */* /usr/portage/packages/All/ e la cosa andava quasi sempre bene.

Secondo me, l'unica noia è che per reinstallarli da un'altra parte bisogna avere tutti i tbz2 all'ultima versione del portage.. Peccato che aggiornare OpenOffice a ogni -rX.ebuild (per X da 1 a n) diventa un po' noioso.

----------

## motaboy

Zi, anch'io facevo spesso ciò perchè sono paranoico.

Adesso invece ho settato direttamente la FEATURES="buildpgk" nel make.conf perchè cosi ho proprio i precompilati del pacchetto appena emergiato e nel caso questo per qualche problema non vada posso ripristinare subito la vecchia versione. utile con i miei smacchinamenti con GCC 3.4 e kde. 

Bye!

----------

## fedeliallalinea

Si potrebbe aggiornarlo in modo che uno metta

```
# ./ennesimoscriptFonderia xfree
```

e lui crea i binari del programma e delle sue dipendenze?

----------

## X-Drum

senza dubbio è utile:

io ho creato tutti i pacchetti binari per eseguire l'installazione su un'altro pc

(è sempre un athlon thunderbird) praticamente mi sono creato i miei GRP  :Very Happy: 

L'unica accortezza sarà quella di impostare sull'altro pc le stesse USE

che ho adoperato in fase di compilazione

----------

## doom.it

Mia idea:

1) aggiornare il portage 

```

emerge rsync

```

2) aggiornare il sistema e verificare che funzioni

```

emerge -uD world

```

3) usando catalyst creare uno snapshot del portage

```

catalyst target=snapshot version_stamp=20040408

```

4) rimuovere tutti i binari gia presenti nel sistema

```

rm -rf /usr/portage/packages/*

```

5) creare i binari di tutto il sistema

```

emerge -e --buildpkgonly world

```

6) masterizzare su DVD lo snapshot del portage e i binari appena creati

E' un processo parecchio lungo ma che fa un backup completissimo.

ciao

DooM

----------

## fedeliallalinea

L'idea di doom mi piace molto. Cosi' si crea anche lo snapshot  :Smile: .

----------

## lan

io l'ho fatta + da figo!

ahaha

da live ho tarrato e bizzipato tutto il sys esclusa la home  :Smile:  in 4 cd ho tutto

ora mi basta solo untarrarli in un disco entrare da chroot configurare grub e rebbot 

torno al punto di prima...

 :Smile: 

----------

## randomaze

 *fedeliallalinea wrote:*   

> L'idea di doom mi piace molto. Cosi' si crea anche lo snapshot .

 

Si, però il richio é che occorra un masterizzatore DVD  :Sad: 

----------

## assente

a sto punto usi partimage.. l'interfaccia da console che ti permette di salvarti una partizione in bz2 o tgz, dividerla in più blocchi da 700mb e proteggerla da password.

Il bello di avere i pacchetti è che puoi installare solo quello che ti serve (dall'altra parte)

 *lan wrote:*   

> io l'ho fatta + da figo!
> 
> ahaha
> 
> da live ho tarrato e bizzipato tutto il sys esclusa la home  in 4 cd ho tutto
> ...

 

----------

## X-Drum

 *assente wrote:*   

> a sto punto usi partimage.. l'interfaccia da console che ti permette di salvarti una partizione in bz2 o tgz, dividerla in più blocchi da 700mb e proteggerla da password.
> 
> 

 

partimage maledetto come ogni tool di clonazione

non clona ad esempio una partizione di 5 GB con 2 GB occupati

su una partizione di 3GB perche' è troppo piccola!!!

anche se lo spazio realmente utilizzato sarebbe sufficiente per eseguire la colonazione...

Contrariamente il metodo degli archivi tar risolve il problema nonostante sia piu' "grezzo"

----------

## FonderiaDigitale

per fedeli: per un package solo basta che dai

```
quickpkg  pacchetto 
```

per doom: la differenza tra quello che suggerisco io e il tuo e' che la mia idea deriva da fare un salvataggio di un sistema gia funzionante e tarato a misura soggettiva.

inoltre io creo pacchetti binari da pacchetti gia installati e quindi non c'e' da ricompilare... mentre col tuo sistema si ricompila tutta la macchina. non esattamente quello che intendevo io  :Smile: 

----------

## mizuky

ho fatto:

```
for i in `qpkg -nc -v -I` ; do if [ ! -f /mnt/hda1/3/`echo $i | sed "s/^.*\///"`.tbz2 ]; then quickpkg =$i; fi; done
```

perchè non avevo abbastanza spazio nella partizione linux, ma ugualmente costruisce i pacchetti in:

/usr/portage/packages/All/

(spero di non aver fatto una str..ta   :Embarassed:  )

cosa posso fare?   :Rolling Eyes: 

PS: /mnt/hda1/3/ è una partizione fat32 di win

----------

## FonderiaDigitale

non puoi fare cosi.

piuttosto lancia questa riga

```
export PKGDIR=/dove/vuoi
```

prima dello script

----------

## randomaze

 *mizuky wrote:*   

> (spero di non aver fatto una str..ta   )
> 
> 

 

Non hai fatto nulla di grave. Semplicemente hai controllato che esistesse una directory per poi salvare i files nell'altra  :Razz: 

Prova così:

```
export PKGDIR="/dove/vuoi/" && for i in `qpkg -nc -v -I` ; do if [ ! -f ${PKGDIR}`echo $i | sed "s/^.*\///"`.tbz2 ]; then quickpkg =$i; fi; done
```

----------

## mizuky

Quotiamo con piu' umanita' -- fedeliallalinea

 *randomaze wrote:*   

> Non hai fatto nulla di grave. Semplicemente hai controllato che esistesse una directory per poi salvare i files nell'altra 

 

 :Embarassed:  ok, grazie ad  entrambi per la spiegazione

avrei un altro paio di domande:

questa procedura crea anche un pacchetto dell'installazione di Gentoo, o solo dei pacchetti emersi dopo?

questa procedura può solo creare i pacchetti di tutto il sistema, o si può anche fare una specie di backup incrementale del sistema?  :Rolling Eyes: 

----------

## FonderiaDigitale

per le tue domande:

1. la mia procedura: dopo/ quella di doom: appena installato

2. con la mia si, emergi e fai i pacchetti (Dovresti modificare leggermente lo script pero')

----------

## andrea.lai

Scusate se mi intrometto ma vorrei meglio capire come possa utilizzare questa funzione che sembra adatta alla mia esigenza.

Vediamo se ho capito bene .

Posso creare tutti i pacchetti precompilati su una macchina e poi ripristinarli su un'altra ?

Esempio possiedo dei PC senza connessione ad internet. Tutti i PC sono uguali sia x hw che per sw.

Vorrei upgradare sia i pacchetti che il portage ( non so se mi serve ) senza però perdere tempo a ricompilare il tutto . 

Posso pertanto creare i paccehtti binari di tutto il sistema ???

E sopratutto come posso ripristinarli sulle altre macchine ???

Grazie.

----------

## codadilupo

 *andrea.lai wrote:*   

> Posso pertanto creare i paccehtti binari di tutto il sistema ???
> 
> E sopratutto come posso ripristinarli sulle altre macchine ???

 

se le macchine sono davvero identiche, allora forse fai prima con un tarball a partire da / (andando prima in init S, che non si sa mai).

Con lo script di FonderiaDigitale, in pratica, ti crei i pacchetti binari della prima macchina installata.

Poi ti masterizzi i binari, e, dopo aver fatto un'installazione minimale delle altre macchine, copi i file in /usr/portage/packages/All e dai l'emerge di quello che ti serve.

Coda

----------

## randomaze

 *andrea.lai wrote:*   

> Posso creare tutti i pacchetti precompilati su una macchina e poi ripristinarli su un'altra ?
> 
> 

 

Si

 *andrea.lai wrote:*   

> Vorrei upgradare sia i pacchetti che il portage ( non so se mi serve ) senza però perdere tempo a ricompilare il tutto . 
> 
> 

 

Selezioni una macchina di lavoro (identica alle altre).

Aggiorni il portage (emerge sync && emerge -uD world) e costruisci i bianri nel modo indicato da FonderiaDigitale.

Facoltativamente (dopo aver costruito i binari, ovviamente) svuoti la directory /usr/portage/distfiles.

Copi l'intera alberatura sotto /usr/portage nelle altre macchine

dopo con qualcosa tipo emerge -kuD world aggiorni le macchine

----------

## andrea.lai

 *Quote:*   

> 
> 
> Copi l'intera alberatura sotto /usr/portage nelle altre macchine
> 
> 

 

L'ho fatto

 *Quote:*   

> 
> 
> dopo con qualcosa tipo emerge -kuD world aggiorni le macchine
> 
> 

 

non funziona in quanto il comando emerge cerca di scaricare da internet i files in /usr/portage/distfiles che ( come suggeritomi nel tuo post ) io ho cancellato.

Vi viene in mente cosa sto sbagliando ?

----------

## randomaze

 *andrea.lai wrote:*   

> Vi viene in mente cosa sto sbagliando ?

 

Ma la directory /usr/portage/packages/All contiene tutti i pacchetti binari che hai creato?

----------

## andrea.lai

Si .

Li ho creati con lo script di "Fonderia" e, quando mi da l'errore, sono andato a verificare se i pacchetti erano presenti e sono presenti.

Che posso fare ??

Riepilogo quello che ho fatto sulla macchina di da aggiornare

```

emerge sync

emerge portage

emerge -uD world

```

Finito questo ho eseguito lo script di "Fonderia" che mi ha creato tutta l'alberatura in /usr/portage/package ed i binari in /usr/portage/package/All.

Fatto questo mi ho cancellato tutta la /usr/portage/distfiles ed ho masterizzato tutta la /usr/portage.

Sono andato sulla macchina da aggiornare ed ho estratto tutta la /usr/portage masterizzata sulla /usr/portage ed ho dato il comando

```

emerge -kuD world

```

Il resto lo sapete già, tale comanda cerca di fare il download del programmi e non trovandoli si ferma .

Cosa sbaglio ????

----------

## randomaze

 *andrea.lai wrote:*   

> Il resto lo sapete già, tale comanda cerca di fare il download del programmi e non trovandoli si ferma .
> 
> 

 

Fai partire il comando e, quando cerca di fare il download cerca di capire che pacchetto é... supponiamo sia zip-2.3-r2

Interrompi e fai:

ls /usr/portage/packages/All/zip*

Nota: Dato che non sono praticissimo dei pacchetti binari forse dimentico qualcosa che fa si che "emerge -kuD world" ignori i pacchetti binari... dai uno sguardo all'help/man di emerge e fai alcune prove con i flag che gli passi  :Wink: 

----------

## s1gmund80

 *Quote:*   

> 
> 
> Il resto lo sapete già, tale comanda cerca di fare il download del programmi e non trovandoli si ferma . 

 

Anche io non sono praticissimo, ma per quanto ne so e leggo dall'help di emerge potresti provare con 

```

 emerge -KuD world

 
```

Ovvero col Kappone, per installare pacchetti SOLO se binari, o almeno questa è l'interpretazione che do all'help:

```

 --usepkg (-k short option)

              Tell emerge to use binary packages (from $PKGDIR) if they are

              available, thus possibly avoiding some time-consuming compiles.

              This option is useful for CD installs; you can export

              PKGDIR=/mnt/cdrom/packages and then use this option to have

              emerge "pull" binary packages from the CD in order to satisfy

              dependencies.

--usepkgonly (-K short option)

              Like --usepkg above, except this only allows the use of binary

              packages, and it will abort the emerge if the package is not

              available at the time of dependency calculation.

```

In effetti non so se il -K condizioni l'installazione da binario, o semplicemente mandi tutto a monte se non lo trova (ovvero problema non risolto...)

cmq posta il seguito che sono curioso!

----------

## Scen

Siccome il semplice ma efficace script di Fonderia mi è servito in molti casi, e visto che il comando qpkg è deprecato, riesumo il topic e aggiorno il comando da usare per creare i pacchetti binari di tutto il software installato.

N.B. PREREQUISITO IMPORTANTE:

```

emerge portage-utils

```

```

for i in `qlist -CIv` ; do if [ ! -f /usr/portage/packages/All/`echo $i | sed "s/^.*\///"`.tbz2 ]; then quickpkg =$i; fi; done

```

Spero che a qualcuno possa servire  :Smile: 

----------

## X-Drum

sempre per lo stesso motivo (qpkg oltre ad essere deprecato sta sparendo da gentoolkit)

ho rimangeggiato lo script di fonderia per usare equery che è gia' contenuto

nel pacchetto:

```
* app-portage/gentoolkit

     Available versions:  0.2.0 0.2.0-r3 0.2.1 ~0.2.2_pre2

     Installed:           0.2.1

     Homepage:            http://www.gentoo.org/proj/en/portage/tools/index.xml

     Description:         Collection of administration scripts for Gentoo
```

```
for i in `equery -C l | cut -d " " -f 1` ; do if [ ! -f /usr/portage/packages/All/`echo $i | sed "s/^.*\///"`.tbz2 ]; then quickpkg =$i; fi; done
```

----------

## hellraiser

Nessuno ha mai pensato di uploadare i pacchetti creati su un server FTP come backup e magari cosi usarlo come PACKAGE_SERVER ?

----------

## X-Drum

 *hellraiser wrote:*   

> Nessuno ha mai pensato di uploadare i pacchetti creati su un server FTP come backup e magari cosi usarlo come PACKAGE_SERVER ?

 

se ne è gia' parlato altrove: il problema consiste nell'etereogenerà delle USE Flags nonchè delle CFLAGS

presenti nei pacchetti creati/uploadati dai vari utenti...

una cosa del genere è fattibile a patto che si utilizzino i medesimi settaggi nonche' snapshot di chi serve

i pacchetti, questo almeno per il momento

----------

## hellraiser

no forse non mi hai capito...io intendevo un FTP per me...che faccia da backup e quindi volendo da PACKAGE HOST...

Si infatti, se si vorrebbe fare un Package Host per tutti, è un po difficile la cosa...in quanto come dicevi tu...dipende dalle USE con cui sono stati compilati/creati i package...

Pero volendo, nel caso del singolo, dite che nn è una buona idea fare un backup su FTP ??

----------

## X-Drum

 *hellraiser wrote:*   

> no forse non mi hai capito...io intendevo un FTP per me...che faccia da backup e quindi volendo da PACKAGE HOST...
> 
> [..snip..]
> 
> Pero volendo, nel caso del singolo, dite che nn è una buona idea fare un backup su FTP ??

 

ah! un backup per te, del tuo sistema sotto forma di grp, su un server ftp, giusto?

non capisco xche vuoi utilizzare un ftp (spero che sia in locale), in ogni caso si funzionerebbe

questo è garantito al 100%

----------

## Luca89

Per fare un backup del sistema secondo me la migliore cosa è fare uno stage4, fare i pacchetti può essere molto utile quando si vuole installare e mantenere gentoo su tante macchine tutte uguali.

----------

## hellraiser

 *X-Drum wrote:*   

>  *hellraiser wrote:*   no forse non mi hai capito...io intendevo un FTP per me...che faccia da backup e quindi volendo da PACKAGE HOST...
> 
> [..snip..]
> 
> Pero volendo, nel caso del singolo, dite che nn è una buona idea fare un backup su FTP ?? 
> ...

 

Si intendevo proprio questo...fare il backup su un server FTP nella LAN...qualcuno gia qualche bozza di script per permettere questo??

Appena ho tempo penso di mettermici sopra...perche mi sarebbe molto utile...

L'ideale sarebbe, che a ogni emerge crea il package e a un certo orario con cron mandarli sul server ftp...

----------

## Ic3M4n

non credo che ti serva uno script...

ti basta mettere buildpkg in features nel make.conf e un comando di rsync in cron.

----------

