# [Risolto] Aiuto con bug 267310

## scolpi

Sono nuovo del mondo gentoo, uso un sistema amd64 e spesso sono alle prese con bug da risolvere.

Nel caso in questione, voglio installare sulla mia macchina virtualbox, ma mi imbatto nel seguwnte probleam:

 *Quote:*   

> simone simone # emerge -av app-emulation/virtualbox-ose
> 
>  * IMPORTANT: 1 news items need reading for repository 'gentoo'.
> 
>  * Use eselect news to read news items.
> ...

 

accetto e in fase di compilazione ottengo il seguente errore:

 *Quote:*   

> /var/tmp/portage/app-emulation/virtualbox-modules-1.6.6-r1/work/vboxdrv/linux/SUPDrv-linux.c:772: error: 'struct task_struct' has no member named 'euid'
> 
> /var/tmp/portage/app-emulation/virtualbox-modules-1.6.6-r1/work/vboxdrv/linux/SUPDrv-linux.c:773: error: 'struct task_struct' has no member named 'egid'
> 
> make[2]: *** [/var/tmp/portage/app-emulation/virtualbox-modules-1.6.6-r1/work/vboxdrv/linux/SUPDrv-linux.o] Error 1
> ...

 

chi risulta essere un bug risolto qua:

https://bugs.gentoo.org/show_bug.cgi?id=267310

chiedo a voi, pur essendo spiegato come risolvere, di spiegarmelo perchè non c'ho capito nulla, ripeto sono nuovo del mondo gentoo.

Grazie in anticipo

SimoneLast edited by scolpi on Fri Sep 25, 2009 7:24 pm; edited 1 time in total

----------

## Ic3M4n

beh... semplicemente il pacchetto stabile (l'1.6.6) è abbastanza vecchio e non va molto daccordo con i nuovi kernel (2.6.29 3 2.6.30)

le alternative che puoi seguire sono 3

o modifichi i sorgenti come spiegato nel thread (apri a manina i file e cambi i valori segnati con il meno con quelli con il +) o impari ad usare patch (man patch)

fai il downgrade del kernel e ne installi uno leggermente pià vecchiotto. emerge =gentoo-sources-versionechevuoi

installi il pacchetto in testing di virtualbox (che compila correttamente) crei la dir /etc/portage/package.keywords e dentro ci crei un file chiamato tipo virtualbox contenente 

```
app-emulation/virtualbox-modules

app-emulation/virtualbox-bin

```

più quello che ti dice emerge che vuole dei pacchetti in testing.

una cosa: la dir potrebbe anche essere un file, io semplicemente creo la directory perchè mi permette di tener separate le cose in testing che uso in differenti file. man portage man emerge e similari ti danno una mano nel capire come funziona il tutto.

----------

## scolpi

Grazie per la velocità della risposta.

Una domanda ancora, l'installazione di virtualbox dai sorgenti comporta qualche problema? Visto che sul sito risulta la versione 3.0.6 decisamente + aggiornati.

----------

## ago

 *Ic3M4n wrote:*   

> 
> 
> installi il pacchetto in testing di virtualbox (che compila correttamente) crei la dir /etc/portage/package.keywords e dentro ci crei un file chiamato tipo virtualbox 
> 
> 

 

quoto,

forse è la soluzione più comoda per te che sei appena arrivato   :Smile: 

----------

## scolpi

 *ago88 wrote:*   

>  *Ic3M4n wrote:*   
> 
> installi il pacchetto in testing di virtualbox (che compila correttamente) crei la dir /etc/portage/package.keywords e dentro ci crei un file chiamato tipo virtualbox 
> 
>  
> ...

 

Mi vergogno un po', visto che su ubuntu di norma sono io a dare aiuti ... , ma la versione di testing quale sarebbe, o meglio dove la trovo?

da

```
emeerge -s virtualbox
```

 *Quote:*   

> *  app-emulation/virtualbox-bin
> 
>       Latest version available: 1.6.6
> 
>       Latest version installed: [ Not Installed ]
> ...

 

non capisco qual' è sempre se si trova qua.

Sono proprio messo male è?   :Embarassed: 

----------

## Onip

@scolpi

installa eix

```
# emerge app-portage/eix
```

aggiornane il database (da fare dopo ogni sync)

```
# eix-update
```

e poi ricerca

```
# eix virtualbox
```

(nel man ci sono molte altre belle opzioni)

le versioni "testing" sono quelle di colore arancione e con la ~ davanti.

----------

## Ic3M4n

in gentoo rispetto ad ubuntu hai la possibilità di impostare in maniera molto fine quello che vuoi stabile e quello che vuoi in testing. alcuni pacchetti addirittura hanno anche una decina di versioni differenti installabili più o meno contemporaneamente, esempio gentoo-sources, sources del kernel in generale, drivers nvidia etc etc.

se ti leggi la documentazione di portage, un po' criptica in effetti all'inizio... scoprirai che tramite il file /etc/portage/package.keywords che puoi creare anche come directory per una separazione dei singoli pacchetti, molto più comoda secondo me che la uso in maniera massiccia, puoi selezionare i singoli pacchetti non ancora definiti stabili dagli sviluppatori gentoo. La sintassi del file è importante e ti permette di "smascherare" un singolo pacchetto con una determinata versione o tutte le versioni.

per esempio:

app-emulation/virtualbox-bin ~amd64 definisce ti utilizzare tutte le versioni in testing del pacchetto virtualbox-bin su architettura amd64, con ~x86 lo fai per sistemi a 32 bit.

>app-emulation/virtualbox-bin-3 ~amd64 definisci tutti i pacchetti dell'eventuale versione 3. quindi se venisse reso disponibile un pacchetto 4.0.0 non lo vedresti come installabile.

=app-emulation/virtualbox-bin-3.0.6 ~amd64 stabilisci che il solo pacchetto con quella determinata versione è installabile

=app-emulation/virtualbox-bin-3.0.6* ~amd64 tutti quelli della versione 3.0.6, quindi anche la -r1 attualmente disponibile.

----------

## Onip

 *Ic3M4n wrote:*   

> 
> 
> >app-emulation/virtualbox-bin-3 ~amd64 definisci tutti i pacchetti dell'eventuale versione 3. quindi se venisse reso disponibile un pacchetto 4.0.0 non lo vedresti come installabile.

 

Invece sì, 4 è > 3. Se tu mettessi

```
=app-emulation/virtualbox-bin-3*
```

 Allora sarebbe come dice Ic3M4n.

 *Ic3M4n wrote:*   

> 
> 
> =app-emulation/virtualbox-bin-3.0.6* ~amd64 tutti quelli della versione 3.0.6, quindi anche la -r1 attualmente disponibile.
> 
> 

 

In questo caso c'è anche l'opzione

```
~app-emulation/virtualbox-bin-3.0.6
```

che smaschera la tal versione e tutte le eventuali -rX

La soluzione di Ic3M4n smaschererebbe anche un'evenuale -3.0.6.1

Infine, in caso di pacchetti slotted ( cioè di cui si possono avere più versioni in contemporanea nel sistema ), è possibile la seguente sintassi

```
cat-egoria/pacchetto:SLOT
```

----------

## armaoin

Ti conviene fare come ho fatto io:

```

echo app-emulation/virtualbox-bin ~amd64 >> /etc/portage/package.keywords

echo app-emulation/virtualbox-modules ~amd64 >> /etc/portage/package.keywords

emerge virtualbox-bin

```

Ovviamente questo vale per la versione precompilata e su sistemi amd64, ma cmq rende l'idea di cosa devi fare.

----------

## Ic3M4n

 *Onip wrote:*   

>  *Ic3M4n wrote:*   
> 
> >app-emulation/virtualbox-bin-3 ~amd64 definisci tutti i pacchetti dell'eventuale versione 3. quindi se venisse reso disponibile un pacchetto 4.0.0 non lo vedresti come installabile. 
> 
> Invece sì, 4 è > 3. Se tu mettessi
> ...

 

oops scusa... typo. ho pensato una cosa e scritta un altra.

----------

## scolpi

grazie a tutti per l'aiuto, ho installato la versione 3.0.6, ora alcuni aspetti di gentoo mi sono + chiari.

----------

## Ic3M4n

figurati. per favore... metti il tag "risolto" al titolo. puoi farlo editanto il primo post.

----------

