# 'emergiare' piu' pacchetti

## bruce19

Ciao, mi pare di aver letto nella documentazione di gentoo che (guardacaso) adesso non trovo piu' sia sia possibile dare in pasto ad emerge piu' pacchetti.

MI spiego: vorrei lanciare "emerge xorg-server fluxbox mozilla-firefox" e poi andare a dormire un po'.

Posso ?

Grazie anticitipatamente

----------

## cloc3

basta provare.

vedi anche la synopsis di man emerge.

in genere, è buona norma evitare di lanciare liste di pacchetti interdipendenti.

per esempio, emerge xulrunner firefox non va benissimo, perché ha l'effetto di allungare inutilmente il file /var/lib/portage/world e rendere più lunghe del necessario le successive ricerche di emerge.

----------

## bruce19

La compilazione e' andata a buon fine. /var/lib/portage/world mi risulta essere come se avessi lanciato emerge per ogni singolo pacchetto.

Ciao  :Surprised: 

----------

## cloc3

 *bruce19 wrote:*   

> /var/lib/portage/world mi risulta essere come se avessi lanciato emerge per ogni singolo pacchetto.
> 
> 

 

questo non è il massimo.

implica che, la prossima volta in cui chiamerai un aggiornamento, ripeterà la verifica delle dipendenze per ogni singola istanza del file world.

dai un occhio a regenworld --help.

----------

## brigante

io ho in mente di farlo nella mia prossima installazione gentoo, ma ho fatto le cose un pò diverse, nel senso che, avendo fatto nel post precedente l' esempio con xulrunner e firefox, ho fatto la mia lista di pacchetti che mi sono indispensabili, e nell' emergerli li categorizzo per bene, almeno spero.

per l' esempio citato darei:

```
emerge xulrunner && USE="xulrunner" emerge firefox && USE="run-as-root ...eccetera..." emerge vlc && tutto quello che mi serve con && ed USE
```

naturalmente questo è inteso eclusivamente per le cose più basilari ed irrinunciabili, di cui in pratica conosco le dipendenze.

----------

## Scen

 *brigante wrote:*   

> 
> 
> ```
> emerge xulrunner && USE="xulrunner" emerge firefox && USE="run-as-root ...eccetera..." emerge vlc && tutto quello che mi serve con && ed USE
> ```
> ...

 

Ed il giorno che eseguirai

```

emerge --update --deep --newuse world

```

?

 :Rolling Eyes: 

E' SBAGLIATISSIMO passare la variabile "USE" ad emerge da linea di comando (lo si può fare al massimo in fase di test di qualche pacchetto), è sempre meglio impostare tale variabile tramite /etc/make.conf o le configurazioni per-pacchetto in /etc/portage/package.use.

P.S. perchè installi manualmente xulrunner? Per quel che ne so è un pacchetto solitamente "dipendenza", es. firefox dipende da xulrunner, per cui basta installare il pacchetto che lo richiede!

----------

## djinnZ

trad: USE="qualcosa" emerge -aDNuv world/pacchetto per vedere cosa cambia oppure, in caso di installazione, riciclando una configurazione piuttosto "ricca", USE="-qualcosa" emerge -1 pacchetto (in genere gcc, pango, cairo, gtk & c e non ricordo quali altre, sono pur sempre un quasi-ex utonto gentoo) per aggirare le dipendenze circolari, sono gli unici modi noti di usare utilmente quasta feature di portage (e comunque il secondo è strettamente non-consigliato).

se cerchi nella sezione documentazione ho postato un suggerimento per affrontare le compilazioni lunghe, occhio che con portage nel frattempo alcune cose sono cambiate, all'emerge --resume --skipfirst vengono saltati tutti quelli successivi che dipendono dal pacchetto escluso e le loro dipdendenze (a me pare una mezza fesseria ma tant'è) e puoi sempre pensare di usare il costrutto for in un banale script bash per installare un pacchetto alla volta  :Wink: 

----------

## brigante

in effetti l' xulrunner me l'ha chiesto ma molto tempo fa, nelle ultime installazioni tra cui una ~amd64 di un paio di settimane fà Firefox se l'è tirato dietro.

detto questo per installare alcuni pacchetti a volte mi chiede di cambiargli l' USE locale, e lo faccio senza aggiungerla sempre nel make.conf, cosa che ora farò logicamente, ma non ho mai dato troppa importanza al passare le USE da shell, infatti al 

```
emerge -uDNav world
```

 ho sempre dovuto risolvere un sacco di casini...

è il segno che devo documentarmi di più su gentoo, (che ormai è diventata la mia prima distro già da tempo), cosa che non ho mai fatto fino in fondo.

thanx btw  :Smile: 

----------

## lordalbert

scusate ma non ho capito in che senso si allunga il file di world elencare più pacchetti.

a me a volte capita di fare un, per esempio 

```
 emerge xchat pidgin openoffice 
```

non credo cambi molto da un 

```
emerge pidgin && emerge xchat && emerge openoffice 
```

----------

## Apetrini

Le due forme che hai postato sono identiche per il world. Il discorso è se espliciti di emergere un pacchetto e una sua dipendenza allo stesso tempo, li il file world viene macchiato con l'entry della dipendenza, cosa inutile e dannosa, poiché sarebbe comunque ricontrollata in caso di update del world.

Se tu batti "emerge openoffice", nel world viene inserito solo openoffice (le dipendenze no, quelle engono calcolate on the fly ogni volta che serve), se tu invece batti "emerge openoffice jpeg libpng poppler expat etc..." nel file world vengono inserite tutte le dipendenze come pacchetti espliciti veri e propri. Questo causa 2 problemi:

1) Viene ricalcolato l'albero delle dipendenze più volte del necessario.

2) Nel momento di eliminare un pacchetto, se vuoi eliminare anche le sue dipendenze (qualora non fossero piu usate da altri programmi), avrai dei problemi; non toglierà le dipendenze che sono state esplicitate nel world, perché per lui sono pacchetti veri e propri che ti servono.

Edit: scusate ma non è che si potrebbe editare il primo post per mettere l'oggetto in un italiano corretto. emergere per cortesia.

----------

## lordalbert

 *Apetrini wrote:*   

> Le due forme che hai postato sono identiche per il world. Il discorso è se espliciti di emergere un pacchetto e una sua dipendenza allo stesso tempo, li il file world viene macchiato con l'entry della dipendenza, cosa inutile e dannosa, poiché sarebbe comunque ricontrollata in caso di update del world.
> 
> Se tu batti "emerge openoffice", nel world viene inserito solo openoffice (le dipendenze no, quelle engono calcolate on the fly ogni volta che serve), se tu invece batti "emerge openoffice jpeg libpng poppler expat etc..." nel file world vengono inserite tutte le dipendenze come pacchetti espliciti veri e propri. Questo causa 2 problemi:
> 
> 1) Viene ricalcolato l'albero delle dipendenze più volte del necessario.
> ...

 

si si, quello mi è chiaro. avevo capito che non andava bene mettere più pacchetti consecutivi come parametro di emerge, ma che ne andava emerso uno per volta. Avevo frainteso i post precedenti :]

----------

## Scen

 *lordalbert wrote:*   

> si si, quello mi è chiaro. avevo capito che non andava bene mettere più pacchetti consecutivi come parametro di emerge, ma che ne andava emerso uno per volta. Avevo frainteso i post precedenti :]

 

No, non è che non vada bene eseguire (es.)

```

emerge kdebase-meta mozilla-firefox openoffice vlc 

```

E' diverso da eseguire

```

emerge kdebase-metal && emerge mozilla-firefox && emerge openoffice && emerge vlc

```

Nel secondo caso si lanciano 4 operazioni di emerge in successione, una di seguito all'altra, e le successive alla prima vengono eseguite solamente se quella precedente viene terminata con successo.

Nel primo caso, invece, si lancia solamente un'operazione di emerge, che installerà i pacchetti specificati (inserendoli nel file world) e ovviamente tutte le dipendenze necessarie per tali pacchetti.

N.B. Nella versione 2.2 (in fase di release candidate) c'è una simpatica opzione --keep-going che permette ad emerge di continuare in caso di fallimento di compilazione di un pacchetto, ricalcolando le dipendenze (escludendo il pacchetto "fallito") ed continuando installando quello che riesce.

Quello che dice Apetrino è che non va bene installare manualmente pacchetti che solitamente sono dipendenze di altri, poichè "intasi" il file world e rischi di tenerti pacchetti inutili nel caso di rimozione di altri con conseguente pulizia dei pacchetti inutili (emerge --depclean).

----------

