# [Risolto] Problemi nell'installazione di Gnome

## Comix

Ciao a tutti, premetto che sono un Gentoo Newbie e sto cercando di barcamenarmi quanto più possibile.

Sto installando la Gentoo su un mio vecchio portatile, un Asus A3E.

Sono arrivato al punto di installare Gnome; come consigliato nella Guida dalla configurazione di GNOME sto utilizzando l'/etc/make.conf con questa configurazione:

```
# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /etc/make.conf.example for a more detailed example.

CFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer"

CXXFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer"

# WARNING: Changing your CHOST is not something that should be done lightly.

# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.

CHOST="i686-pc-linux-gnu"

MAKEOPTS="-j2"

GENTOO_MIRRORS="ftp://ftp.unina.it/pub/linux/distributions/gentoo"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="-qt3 -qt4 -arts -kde X dbus hal avahi gnome gtk"

```

e ovviamente mi dava problemi di dipendenza circolare.

Quindi su questo topic gnome - errore dipendenze ho trovato il suggerimento di provare con

```
# time USE="-*" emerge gnome
```

(il time lo uso a scopo statistico) e a questo punto mi ritrovo con l'errore:

ERROR: gnome-extra/gnome-user-docs-2.22.1 failed. e guardando un po' nelle ultime righe trovo:

```
Traceback (most recent call last):

  File "/usr/bin/xml2po", line 35, in <module>

    import libxml2

ImportError: No module named libxml2
```

così, come anche consigliato in ERROR: gnome-extra/gnome-user-docs-2.22.1 [Solved], lancio:

```
# time USE="-*" emerge libxml2
```

Il sistema fa l'emerge ma al termine della compilazione quando riprovo a lanciare

```
# USE="-*" emerge gnome
```

ottengo un nuovo errore: ERROR: gnome-extra/swfdec-gnome-2.22.2 failed.

La cosa inizia a farsi stancante e ho il dubbio di sbagliare qualcosa in partenza, oppure è normale avere così tanti problemi di compilazione?

Le ultime righe del log di compilazione sono le seguenti:

```
 * Messages for package gnome-extra/swfdec-gnome-2.22.2:

 *

 * ERROR: gnome-extra/swfdec-gnome-2.22.2 failed.

 * Call stack:

 *                    ebuild.sh, line   49:  Called pkg_setup

 *   swfdec-gnome-2.22.2.ebuild, line   28:  Called die

 * The specific snippet of code:

 *              die "Please re-emerge media-libs/swfdec with the gtk USE flag"

 *  The die message:

 *   Please re-emerge media-libs/swfdec with the gtk USE flag

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/gnome-extra/swfdec-gnome-2.22.2/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/gnome-extra/swfdec-gnome-2.22.2/temp/die.env'.

 *

 * GNU info directory index is up-to-date.

```

Vi chiedo scusa in anticipo se ho saltato qualcosa di ovvio, ho cercato di essere il più scrupoloso possibile ma a questo punto mi farebbe piacere l'aiuto di qualcuno. Devo dire che Gentoo mi piace davvero molto, la trovo molto performante, e mi dispiacerebbe abbandonare a questo punto!

EDIT 2008/11/14: Marcato come risolto  :Smile: 

----------

## Onip

```
Please re-emerge media-libs/swfdec with the gtk USE flag
```

L'errore, se vedi è abbastanza palese.

A me sembra poco sensato togliere tutte quante le USE per un problema di dipendenza circolare. Di solito queste cose si risolvono cambiando qualche USE temporaneamente, ma solo a qualche specifico pacchetto, cioè quelli che danno i problemi. Nel modo in cui hai fatto tu poi ti ritroverai a dover ricompilare praticamente tutto e a dover affrontare problemi di questo tipo.

Purtroppo non hai messo l'errore di dipendenze originario, sennò si poteva darti qualche suggerimento un po' più mirato.

Un'ultima nota. Come avrai capito anche tu libxml2 è una dipendenza di qualche altro pacchetto che hai emerso, è concettualmente sbagliato emergerla con

```
# emerge libxml2
```

piuttosto bisogna usare

```
# emerge -1 libxml2
```

 (oppure la versione lunga dell'opzione --oneshot).

Adesso non ho tempo di spiegarti la differenza, ma se cerchi un po' nel forum ci dovrebbe essere il motivo. Comunque non è niente di "mortale", semplicemente alcuni tool ( emerge --depclean ) dopo non funzionano a dovere.

Per risolvere la cosa o dai

```
# emerge -C libxml2 && emerge -1 libxml2
```

(ricompilandolo)

oppure apri il file /var/lib/portage/world e cancelli la riga relativa. Occhio a non modificare altro.

Ciao e Benvenuto

p.s. Complimenti per la ricerca preventiva, (purtroppo) è raro che uno nuovo lo faccia   :Wink:  .

----------

## djinnZ

Non uso gnome ma ti consiglio di rimuovere libxml2 da world (il comando esatto è, ancora per poco, USE="-*" emerge -1 libxml2) o potresti avere seccature in futuro.

gnome è rognoso da installare, nel caso specifico ti basta un emerge -1N svfdec e poi riprendi con l'emerge gnome. Semmai al prossimo errore vedi se senza il -* spariscono le dipendenze circolari oppure prova con "-gnome -avahi -doc".

edit [battuto sul tempo da un post più completo].

 *Onip wrote:*   

> Ciao e Benvenuto
> 
> p.s. Complimenti per la ricerca preventiva, (purtroppo) è raro che uno nuovo lo faccia   .

   :Shocked:  è vero non me ne ero accorto, un nuovo arrivato "e cortese per di più". Non un semplice benvenuto ma una standing ovation sarebbe d'uopo...  :Twisted Evil: 

----------

## Comix

Ragazzi siete fantastici, non mi aspettavo una risposta così veloce! E vi ringrazio per il benvenuto!

Faccio un po' fatica a capire la terminologia dei vari parametri di emerge, portate pazienza, ma sto cercando di documentarmi il più possibile...

Dunque, ho fatto un bel po' di prove e mi sarebbe davvero piaciuto scrivervi che avevo risolto tutto, purtroppo non è così! In ogni caso sto iniziando a capire alcuni meccanismi grazie ai consigli che mi avete dato!

Sarà un post un po' lungo ma preferisco spiegarvi esattamente quello che ho fatto.

Ho iniziato con il rimuovere libxml2 da world, così ho lanciato il comando

```
# emerge -C libxml2 && emerge -1 libxml2
```

quindi ho controllato il contenuto del file e ho riprovato a emergere Gnome:

```
# cat /var/lib/portage/world

app-admin/syslog-ng

app-editors/vim

app-misc/screen

net-misc/dhcpcd

net-wireless/ipw2200-firmware

sys-apps/fbset

sys-apps/microcode-ctl

sys-apps/pcmciautils

sys-boot/grub

sys-kernel/gentoo-sources

sys-power/acpid

sys-power/cpufrequtils

sys-power/iasl

sys-power/ncpufreqd

www-client/links

# emerge gnome
```

A questo punto non ho più problemi di dipendenze circolari, a quanto pare sembrano finalmente soddisfatte, tuttavia ho questo bell'errore:

```
 * You must emerge gnome-base/gnome-menus with the python USE flag

 *

 * ERROR: x11-misc/alacarte-0.11.5 failed.

 * Call stack:

 *                ebuild.sh, line   49:  Called pkg_setup

 *   alacarte-0.11.5.ebuild, line   29:  Called die

 * The specific snippet of code:

 *              die "alacarte needs python support in gnome-base/gnome-menus"

 *  The die message:

 *   alacarte needs python support in gnome-base/gnome-menus

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/x11-misc/alacarte-0.11.5/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/x11-misc/alacarte-0.11.5/temp/die.env'.

 *

 * Messages for package media-gfx/eog-2.22.3-r1:

 * For JPEG file support to work, x11-libs/gtk+ must be rebuilt

 * with the 'jpeg' USE flag enabled.

 * For TIFF file support to work, x11-libs/gtk+ must be rebuilt

 * with the 'tiff' USE flag enabled.

 * Messages for package gnome-extra/gnome-screensaver-2.22.2:

 * Information for converting screensavers is located in

 * /usr/share/doc/gnome-screensaver-2.22.2/xss-conversion.txt.

 * Messages for package x11-misc/alacarte-0.11.5:

 * You must emerge gnome-base/gnome-menus with the python USE flag

 *

 * ERROR: x11-misc/alacarte-0.11.5 failed.

 * Call stack:

 *                ebuild.sh, line   49:  Called pkg_setup

 *   alacarte-0.11.5.ebuild, line   29:  Called die

 * The specific snippet of code:

 *              die "alacarte needs python support in gnome-base/gnome-menus"

 *  The die message:

 *   alacarte needs python support in gnome-base/gnome-menus

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/x11-misc/alacarte-0.11.5/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/x11-misc/alacarte-0.11.5/temp/die.env'.

 *

 * GNU info directory index is up-to-date.
```

Da qui deduco che ci voglia il python in USE, così provo aggiungendolo alla USE di /etc/make.conf.

Rilancio emerge gnome ma da lo stesso messaggio di errore:

```
 * You must emerge gnome-base/gnome-menus with the python USE flag

 *

 * ERROR: x11-misc/alacarte-0.11.5 failed.

 * Call stack:

 *                ebuild.sh, line   49:  Called pkg_setup

 *   alacarte-0.11.5.ebuild, line   29:  Called die

 * The specific snippet of code:

 *              die "alacarte needs python support in gnome-base/gnome-menus"

 *  The die message:

 *   alacarte needs python support in gnome-base/gnome-menus

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/x11-misc/alacarte-0.11.5/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/x11-misc/alacarte-0.11.5/temp/die.env'.

 *

 * Messages for package gnome-base/nautilus-2.22.5.1:

 * nautilus can use gstreamer to preview audio files. Just make sure

 * to have the necessary plugins available to play the media type you

 * want to preview

 * Messages for package x11-misc/alacarte-0.11.5:

 * You must emerge gnome-base/gnome-menus with the python USE flag

 *

 * ERROR: x11-misc/alacarte-0.11.5 failed.

 * Call stack:

 *                ebuild.sh, line   49:  Called pkg_setup

 *   alacarte-0.11.5.ebuild, line   29:  Called die

 * The specific snippet of code:

 *              die "alacarte needs python support in gnome-base/gnome-menus"

 *  The die message:

 *   alacarte needs python support in gnome-base/gnome-menus

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/x11-misc/alacarte-0.11.5/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/x11-misc/alacarte-0.11.5/temp/die.env'.

 *

 * GNU info directory index is up-to-date.
```

Così ho provato facendo emerge python, rilanciato emerge gnome e non è cambiato nulla  :Crying or Very sad: 

Non riesco a capire come mai ho così tanti problemi per compilare Gnome. Forse ho sbagliato nel momento in cui ho deciso di tenere il profilo di default e di non passare al profilo desktop.

Mi sono fermato qui perché temo di incasinare troppo il tutto e così rieccomi a chiedervi un lume...  :Idea: 

Ho provato a cercare l'errore nel forum e su Google ma con scarsi risultati...

----------

## djinnZ

Ti ripeto che non ricordo neppure quando ho visto gnome per l'ultima volta ma ti passo un paio di consigli al volo.

Se non lo hai già fatto lancia un emerge gentoolkit euses portage-utils eix , così hai qualche utile strumento in più per pasticciare in futuro.

Abilita la use python (gentoolkit contiene euse e quindi ti basta un semplice euse -E python per abilitarla).

Un'altra utility è ufed, sia come editor delle use che per farle riordinare in forma leggibile.

Non avere il profilo desktop ti richiede un pochino di lavoro in più per abilitare le use flag che ti occorrono ma non è necessariamente un male.

Bada che tra profilo "normale" e "desktop" l'unica differenza solo le use presezionate, se credi che il tuo utilizzo sia quello ti basta cambiarlo e lanciare un emerge -NDu world per mettere tutto a posto.

Se una useflag ti crea problemi con un pacchetto puoi disabilitarla solo per lui con una riga "categoria/pacchetto -use" in package.use, visto che sei nuovo ti consiglio di essere sistematico (io abilito tutto in make.conf e disabilito solo in package.use, tu potresti trovare utile fare al contrario).

 Sappi che una delle ragioni per cui gnome non tornerà mai più sul mio pc è anche la complessità delle sue dipendenze, queste bestemmie sono normali all'inizio, è gentoo.  :Laughing: 

Col tempo ci farai il callo.  :Twisted Evil: 

Quando avrai finito con gnome ti consiglio di lanciare un 

```
emerge --with-color y -epv world | less
```

 e dare uno sguardo a quali use flag sono attive e quali potrebbero interessarti.

----------

## dynamite

Ho dato solo un'occhiata veloce, ma hai dato "python-updater" (da root mi pare)?

----------

## Comix

Grazie a djinnZ per le utility che mi ha consigliato, anche la pagina della nonciclopedia: la leggerò tra una compilazione e l'altra!!

Anche se non ho ancora finito con Gnome ho provato a lanciare

 *djinnZ wrote:*   

> 
> 
> ```
> emerge --with-color y -epv world | less
> ```
> ...

 

perché volevo vedere cosa facesse, ma emerge mi risponde con un bel:

```
emerge: error: no such option: --with-color
```

Ad ogni modo non sono ancora riuscito ad andare avanti con Gnome, ho ancora lo stesso errore di prima, nonostante avevo già aggiunto python alla variabile USE di /etc/make.conf.

 *dynamite wrote:*   

> Ho dato solo un'occhiata veloce, ma hai dato "python-updater" (da root mi pare)?

 

Durante la compilazione avevo letto di lanciare quel comando solo nel caso di un aggiornamento, ad ogni modo ho fatto come mi hai consigliato, seguito poi dal mio solito emerge gnome, ma ho ancora lo stesso e identico problema di prima.

Inizio ad essere un po' abbattuto, sinceramente pensavo di aver più problemi con la compilazione del kernel (che è ancora lontano dall'essere perfetto, ma almeno funziona) che con la compilazione di un ambiente grafico...  :Crying or Very sad: 

--EDIT:

Colto da un attimo di ispirazione ho provato a lanciare

```
 # USE="python" emerge gnome-base/gnome-menus
```

e me l'ha compilato!! Eppure il parametro python è nell'USE del make.conf!! Perché questa cosa?!

Ho ri-ri-ri-ri provo a lanciare emerge gnome e mi ha dato:

```
 * Messages for package app-text/evince-2.22.2-r1:

 *

 * ERROR: app-text/evince-2.22.2-r1 failed.

 * Call stack:

 *                 ebuild.sh, line   49:  Called pkg_setup

 *   evince-2.22.2-r1.ebuild, line   64:  Called die

 * The specific snippet of code:

 *              die "poppler-bindings needs gtk flag set"

 *  The die message:

 *   poppler-bindings needs gtk flag set

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/app-text/evince-2.22.2-r1/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/app-text/evince-2.22.2-r1/temp/die.env'.

 *

 * GNU info directory index is up-to-date.

 * IMPORTANT: 10 config files in '/etc' need updating.

 * See the CONFIGURATION FILES section of the emerge

 * man page to learn how to update config files.
```

----------

## ckx3009

domandona: da quando hai un sistema ben bootabile, anche se senza ambiente grafico, quante volte hai aggiornato i tuoi pacchetti?

```
emerge --sync && emerge -uDNav world
```

se e' la prima volta che lo lanci, il --sync ci mette un po'.

il -uDNav world ci mette di piu'  :Very Happy: 

riabilita tutte le USE prima di darlo.

inoltre e' possibile che trovi dei Blocked Packages e delle dipendenze circolari, se e' il primo aggiornamento. non preoccuparti, sono state ampiamente discusse e risolte sul forum, quindi basta cercare i nomi dei 2 pacchetti e risolvi

----------

## djinnZ

Il parametro è --color y (ho fatto confusione con --with-bdeps y... l'artereosclerosi galoppa. A parte gli scherzi controlla sempre perchè è facile che ti si dia involontariamente indicazioni sbagliate.), controlla meglio avrai scritto male la use.

Ti ripeto che è buona norma evitare di avere in world pacchetti che sono dipendenza di altri. I pacchetti in world vengono sempre aggiornati alla più alta versione stabile disponibile, le dipedenze alla più alta richiesta, questo vuol dire che rischi che una libreria od un sottopacchetto (come nel caso di gnome-menu) vengano aggiornati ad una versione eccessivamente alta oppure che emerge, apparentemente senza ragione, aggiorni la dipendenza ad una versione più alta per poi volerla aggiornare ad una più bassa ogni volta che lo esegui. NB: puoi benissimo editare world e togliere i pacchetti ma non puoi aggiungere pacchetti non installati.

Prova anche anche a lanciare un emerge --resume --skipfirst, guadagni tempo compilando i pacchetti successivi (in documentazione ho scritto qualcosa che potrebbe tornarti utile) durante la notte (consiglio: l'opzione -f o -F consentono di scaricare preventivamente i pacchetti).

Attento ad una cosa USE="-* ..." in make.conf disabilita tutte le use impostate dal profilo. Se sai quel che stai facendo è bene ma attenzione, alcune non devono mai essere toccate.

Le altre dipendenze circolari sono innescate da "doc" (che è bene usare solo per pacchetto, mai globalmente) da gtk (ma stai installando gnome quindi suppongo che sia già passata) e da cups e samba. Un USE="-*" emerge -1 cups samba ghostscript-esp è una cosa utile se non sono già installati (per una ottima ragione non del tutto chiara di default viene installato ghostscript-gpl che con cups crea problemi) o non pensi di usarli (difficile).

Quando avrai finito con gnome completa almeno un emerge -DNu world ; revdep-rebuild prima di tentare qualsiasi unlteriore aggiornamento.

----------

## Onip

Avendo installato un po' di pacchetti disabilitando ogni supporto facoltativo, adesso è chiaro che i programmi che necessitano di certe features poi si lamentano.

Se vuoi portarti ad uno stato tutto sommato coerente prova così

impostare il profilo desktop

```
# eselect profile list

# eselect profile set <numero_profilo_desktop>

```

un profilo non è altro che un set di USE di default (e altre cosette) per avere una base concreta su cui partire.

 riemergere tutti i pacchetti che lo necessitano con le USE aggiornate

```
# emerge -N world
```

 proseguire con l'emerge di gnome

```
# emerge gnome

```

Ti ricordo che puoi anche valutare la mole di pacchetti da ricompilare aggiungendo -av alle opzioni.

Buon lavoro e trovati qualcosa di carino da leggere...

----------

## Comix

Non ho rinunciato ma sto semplicemente facendo un bel po' di prove e nel frattempo sto continuando a documentarmi!!

Se avete consigli da scrivermi, fate pure solo che mi piace rispondere quando ho effettivamente qualcosa da dire.

Ho lanciato l'ennesimo emerge seguendo i consigli delle ultime risposte (grazie davvero!)  :Wink: 

[OT-Pensiero-Riflessione]

Ero preparato alle difficoltà di compilare un sistema operativo (studio Informatica all'Università e, diciamo, una mezza idea ce l'ho  :Wink:  ) e avevo passato un bel po' di tempo a documentarmi sui manuali di Gentoo, ma sinceramente dai manuali sembra che emerge faccia miracoli e invece ti fa sudare alla grande!!!  :Evil or Very Mad: 

Comunque già grazie ai vostri consigli ho capito molte cose che dai manuali era impossibile conoscere!

La cosa che mi lascia perplesso è che non sono riuscito a trovare una guida o delle dritte per avere Gnome sicuramente funzionante (senza usare strane USE, in modo che funzioni e basta!) e mi lascia ancora più perplesso il manuale ufficiale:

 *Guida alla configurazione di GNOME wrote:*   

> [...]
> 
> Una volta fatto, si può installare GNOME effettuando l'emerge del pacchetto gnome:
> 
> Codice 2.3: Installare GNOME
> ...

 

Ok, ma io pensavo per i tempi di compilazione, non in tentativi di emerge!!

Vabbè ma dopo tutto è anche il bello di Gentoo.

[/OT-Pensiero-Riflessione]

----------

## Onip

Il problema è che hai usato una soluzione 'eccessiva' ad un problema. E adesso ti trovi a dover riparare gli 'effetti secondari' di questa cosa.

Ad ogni modo i problemi di dipendenza circolare non è che capitino tutti i giorni eh.   :Wink: 

----------

## Comix

 *Onip wrote:*   

> Il problema è che hai usato una soluzione 'eccessiva' ad un problema. E adesso ti trovi a dover riparare gli 'effetti secondari' di questa cosa.

 

Ok, a questo punto forse e' meglio riportare il sistema prima dell'installazione di Gnome, quando dava il problema di dipendenza circolare.

Quindi, se dovessi fare cosi':

1. Come faccio a riportare il tutto a come prima? Basta un emerge -C world?

2. Per risolvere il problema della dipendenza circolare basta fare USE="-*" emerge gnome?

Scusate per le domande, ma vorrei capire bene come risolvere questi problemi, perche' sono un po' confuso...  :Rolling Eyes: 

--- Update dell'ultimo minuto ---

Forse ce l'ho fatta... forse!!

----------

## Onip

tornare indietro non serve a niente, solo a farti perdere altro tempo.

quando hai problemi di dipendenza circolare puoi, in generale, aprirti con un editor di testo gli ebuild incriminati e verificare se questa dipendenza è dovuta a qualche USE (oppure vederlo 'ad occhio'). Se è così puoi sempre fare

```
# USE="-foo" emerge -1 ( <- se necessario) pacchetto

# emerge -N blablabla

```

Eventualmente c'è anche l'opzione --nodeps di emerge, ma funziona solo in casi eccezionali: ad esempio se uno dei due pacchetti 'circolari' è solo una rdep piuttosto che una bdep.

Disabilitare in toto le use a tutti i pacchetti come hai fatto tu con USE="-*" emerge gnome è come sparare alle mosche col bazooka, fai più danni che altro (come hai visto anche tu) e perdi un sacco di tempo a compilare roba che poi dovresti comunque riemergere per adattarle alle USE che hai impostato.

Imposta per bene le use che vuoi, tramite

1) profilo

2) make.conf

3) /etc/portage/package.use

(nota che emerge li valuta in quell'ordine quindi puoi sempre sovrascrivere un'opzione ad esempio del profilo settandone l'opposto in uno dei file successivi.)

e poi sistema l'installato con

```
# emerge -N world
```

infine prosegui con gnome.

È importante, per valutare le use desiserate, esaminare attentamente l'output di emerge -pv quellochevuoi prima di emergere effettivamente i pacchetti.

----------

## Comix

Oggi pomeriggio ho seguito le vostre indicazioni, ho lanciato ancora un paio di emerge e quando sono arrivato a casa.. startx e, bè, giudicate voi  :Wink: 

http://img514.imageshack.us/img514/6766/gentooen5.png

Bè, mancano ancora un po' di cosette (audio, wireless, auto-mounter delle usb, ...) però per me è già una bella soddisfazione!!  :Cool: 

Grazie per l'aiuto!!

Senza di voi penso che sarei stato tentato di abbandonare una ventina di emerge fa..  :Very Happy: 

----------

