# dubbio aggiornamento x colpa di eix

## Maialovic

salve picciotti,

oggi mi son voluto togliere uno sfizio e credo che solo voi potete darmi l'ultimo consiglio valido prima del mio delirio.

Vi spiego: mi son rotto le scatole che ogni volta che aggiorno la gentoo e poi faccio un bel 

```
eix -u
```

 mi da sempre un bell'output in uscita del genere 

```
Calculating dependencies... done!

[ebuild     U ] x11-misc/icon-naming-utils-0.8.6 [0.8.2-r1]

andrea@maialhost /home/andrea $ eix -u

[U] app-arch/rpm2targz

     Available versions:  9.0-r2 9.0-r3 ~9.0-r4 9.0-r5 9.0-r6

     Installed versions:  9.0-r5(10:34:57 08/10/07)

     Homepage:            http://www.slackware.com/config/packages.php

     Description:         Convert a .rpm file to a .tar.gz archive

[U] dev-lang/yasm

     Available versions:  0.4.0 ~0.5.0 0.6.0 0.6.1 ~0.6.2 {nls}

     Installed versions:  0.6.0(23:32:35 08/09/07)(nls)

     Homepage:            http://www.tortall.net/projects/yasm/

     Description:         assembler that supports amd64

[U] dev-libs/libassuan

     Available versions:  0.6.9 0.6.10 ~0.9.2 ~0.9.3 ~1.0.0 ~1.0.1 ~1.0.2 1.0.2-r1

     Installed versions:  0.6.10(23:02:18 08/09/07)

     Homepage:            http://www.gnupg.org/(en)/download/index.html#libassuan

     Description:         Standalone IPC library used by gpg, gpgme and newpg

[U] dev-util/pmd

     Available versions:  3.8-r1 3.9 {doc elibc_FreeBSD source test}

     Installed versions:  3.8-r1(02:00:38 08/22/07)(-doc -elibc_FreeBSD -source -test)

     Homepage:            http://pmd.sourceforge.net

     Description:         A Java source code analyzer. It finds unused variables, empty catch blocks, unnecessary object creation and so forth.

[D] sys-kernel/gentoo-sources

     Available versions:

        (2.6.16-r13)    2.6.16-r13

        (2.6.19-r5)     2.6.19-r5

        (2.6.19-r7)     (~)2.6.19-r7

        (2.6.20-r10)    (~)2.6.20-r10

        (2.6.21-r4)     2.6.21-r4

        (2.6.22)        (~)2.6.22

        (2.6.22-r1)     (~)2.6.22-r1

        (2.6.22-r2)     2.6.22-r2

        (2.6.22-r3)     (~)2.6.22-r3

        (2.6.22-r4)     (~)2.6.22-r4

        (2.6.22-r5)     2.6.22-r5

        (2.6.22-r6)     (~)2.6.22-r6

        (2.6.22-r7)     (~)2.6.22-r7

        (2.6.22-r8)     2.6.22-r8

        (2.6.22-r9)     (~)2.6.22-r9

        (2.6.23)        (~)2.6.23

        {build symlink ultra1}

     Installed versions:  2.6.20-r8(2.6.20-r8)(23:47:39 08/09/07)(-build -symlink)

                          2.6.23(2.6.23)(19:36:51 10/13/07)(-build -symlink)

     Homepage:            http://dev.gentoo.org/~dsd/genpatches

     Description:         Full sources including the Gentoo patchset for the 2.6 kernel tree

[U] x11-misc/icon-naming-utils

     Available versions:  0.8.2 0.8.2-r1 0.8.6

     Installed versions:  0.8.2-r1(09:03:03 08/10/07)

     Homepage:            http://tango-project.org/

     Description:         Utilities to help with the transition to the new freedesktop.org naming scheme, they will map the new names to the legacy names used by the GNOME and KDE desktops

Found 6 matches.

andrea@maialhost /home/andrea $  
```

con tutto che ho appena aggiornato il mio bel world.

Cioe appena rifaccio emerge -uavDN world mi dice che non ci sono nuovi pacchetti da aggiornare, ma se faccio eix -u mi da l'elenco sopra citato.

penso allora che per dpendenze dirette dei miei pacchetti preferisce mantenere i vecchi...ma mi rogna il fatto che ce ne siano di nuove  ma non usate..

allora cosa ho pensato? facciamo un bello script per aggiornarli . però prima di procedere preferisco il vostro ultimo supremo consiglio definitivo se procedere o no.

il codice è 

```

#!bin/bash

for Names in $(eix -u | grep ] |  cut -c5-30)

do

emerge  $Names

done

```

che dite, vado ad aggiornare?

----------

## rete27

prova a fare un emerge --sync  e vedi se ti salta fuori un po di roba da aggiornare...

----------

## Kernel78

Il sync serve a poco, il database di eix si basa sul portage quindi la vedo dura che eix abbia pacchetti più aggiornati  :Wink: 

Tornando allo script io suggerirei una variante del tipo

```
#!bin/bash

for Names in $(eix -uc | cut -f 2 -d " ")

do

emerge  -1 $Names

done 
```

Se ti interessa ti spiego le mie modifiche.

----------

## Maialovic

ho capito le tue modfiche allo script, ma comunque ho lanciato il mio (tanto il risultato è lo stesso  :Very Happy: ) poi ho lanciato in sequenza 

```

emerge -uavDN world

revdep-rebuild

```

e il sistema è consistente (sembra)

cmq l'ultimo dubbio è se ricompilare i pacchetti dipendenti dagli aggiornamenti o no (tramite equery)

----------

## Kernel78

 *Maialovic wrote:*   

> ho capito le tue modfiche allo script, ma comunque ho lanciato il mio (tanto il risultato è lo stesso )

 

 :Rolling Eyes: 

scusa ma se hai capito le modifiche che ho apportato e hai comunque lanciato il tuo o volevi incasinarti il sistema o non hai capito un cavolo delle mie modifiche.

Lanciando il tuo script hai inserito in world pacchetti che non dovevano starci.

----------

## MeMyselfAndI

Perdonami ma non capisco l'utilita' del tuo script :

Prendiamo il caso dei pacchetti slotted (le librerie qt per esempio); se sul tuo sistema e' installata la versione 3 delle librerie (come in un qualcunque sistema odierno visto che sono usate da kde 3.5) il tuo script ti aggiornera' le librerie alla versione 4 (che sono inutili al corretto funzionamento della tua macchina) e te le inserira' nel file di world, rendendo inutile l'utilizzo futuro di emerge --depclean. Quindi oltre alla beffa di non avere nessun vantaggio hai anche il danno di rendere il tuo sistema poco pulito e difficilmente mantenibile in futuro.

----------

## Maialovic

allora......forse non mi sono spiegato bene...e vorrei recuperare se possibile

credo ke questi file ke vi ho fatto vedere, come notato, ce la bella U di upgrade, di conseguenza penso ke se sono da aggiornare saranno sempre da considerare come gli originali, quindi se gli originali erano dipendenze rimangono loro...o sbaglio? poiche credo ke emerge se trova una dipendenza da aggiornare l'aggiorni....ma non la inserisca in world...o sbaglio?? e visto che gli ho passato come parametro a emerge -u credo ke tratti il pacchetto come di origine e non come nuovo pacchetto da aggiungere

----------

## bandreabis

emerge (-u) nomepacchetto aggiunge nomepacchetto a world

emerge -1u nomepacchetto non aggiunge nomepacchetto a world

almeno a mia insaputa, diceva un tizio!

----------

## Kernel78

 *Maialovic wrote:*   

> allora......forse non mi sono spiegato bene...e vorrei recuperare se possibile
> 
> credo ke questi file ke vi ho fatto vedere, come notato, ce la bella U di upgrade, di conseguenza penso ke se sono da aggiornare saranno sempre da considerare come gli originali, quindi se gli originali erano dipendenze rimangono loro...o sbaglio? poiche credo ke emerge se trova una dipendenza da aggiornare l'aggiorni....ma non la inserisca in world...o sbaglio?? e visto che gli ho passato come parametro a emerge -u credo ke tratti il pacchetto come di origine e non come nuovo pacchetto da aggiungere

 

Dunque, quello che fa testo per un aggiornamento è emerge non eix, se ad emerge non interessa aggiornare un pacchetto probabilmente è perchè si tratta di una dipendenza che non necessita di essere aggiornata e visto che tu non usi quel pacchetto (altrimenti l'avresti messo in world) nemmeno a te dovrebbe interessare particolarmente a quale versione sia.

Se non ostante questo per motivi tuoi e non per necessità di sistema vuoi aggiornare a tutti i costi i pacchetti che ti segnalava eix avresti dovuto usare le mie modifiche, visto che con il tuo metodo hai aggiunto quei pacchetti a world anche se tu non pensavi che funzionasse così.

Spero di non sembrare altezzoso se ti consiglio di dare una lettura a man emerge, tutte le opzioni sono spiegate abbastanza chiaramente e se hai dei dubbi puoi sempre chiedere a noi  :Wink: 

----------

## Ic3M4n

io andrei a leggere con attenzione man emerge alla sezione "--with-bdeps"

----------

## riverdragon

 *Maialovic wrote:*   

> allora cosa ho pensato? facciamo un bello script per aggiornarli . però prima di procedere preferisco il vostro ultimo supremo consiglio definitivo se procedere o no.

 

NON procedere. Se emerge -uDN world non aggiorna più nulla vuol dire che non c'è nulla di aggiornabile. Se aggiorni a mano dei pacchetti che emerge non richiama automaticamente, al successivo aggiornamento saranno riportati indietro di versione. Sicuramente tra gli ebuild installati ce n'è uno che specifica la precisa versione che vuole. Ho questa situazione anche io.

Puoi scoprirlo con qdepends -Q <nomepacchetto> o con equery d <nomepacchetto>.

----------

## djinnZ

quoto

se non mi sbaglio vuol dire che le ultime versioni stabili di quei pacchetti (guardacaso sono tutte librerie) sono più recenti delle versioni richieste per dipendenza dai pacchetti installati. Puoi provare e se funziona aprire un bug per vedere se i devel sbloccano la versione (in pratica li aiuti a testare le nuove dipendenze).

----------

## Maialovic

allora ricapitolando : se faccio il classico aggiornamento con emerge mi dice che c'e niente da aggiornare, ma se facciol'emerge world con emptytree mi dice che quei pacchetti devono essere aggiornati..

e cmq con il mio script ho controllato e i file che ho aggiornato NON sono stati inseriti in world, controllando il file /var/lib/portage/world e quindi ho ragione io

----------

## riverdragon

"emptytree"? Che c'entra? Fallo con --deep (-D), non con -e!

----------

## MeMyselfAndI

 *Maialovic wrote:*   

> allora ricapitolando : se faccio il classico aggiornamento con emerge mi dice che c'e niente da aggiornare, ma se facciol'emerge world con emptytree mi dice che quei pacchetti devono essere aggiornati..
> 
> e cmq con il mio script ho controllato e i file che ho aggiornato NON sono stati inseriti in world, controllando il file /var/lib/portage/world e quindi ho ragione io

 

Guarda mi spiace contraddirti ma a meno che tu non abbia aggiunto un -1 al tuo script come suggeritoti precedentemente è impossibile. Un software fa quello per cui è stato programmato quindi emerge qualcosa aggiunge qualcosa al tuo world. E su questo non ci piove perchè per emerge non c'è differenza tra una libreria da aggiornare a una versione successiva o un pacchetto mai installato.

----------

## Kernel78

 *MeMyselfAndI wrote:*   

>  *Maialovic wrote:*   allora ricapitolando : se faccio il classico aggiornamento con emerge mi dice che c'e niente da aggiornare, ma se facciol'emerge world con emptytree mi dice che quei pacchetti devono essere aggiornati..
> 
> e cmq con il mio script ho controllato e i file che ho aggiornato NON sono stati inseriti in world, controllando il file /var/lib/portage/world e quindi ho ragione io 
> 
> Guarda mi spiace contraddirti ma a meno che tu non abbia aggiunto un -1 al tuo script come suggeritoti precedentemente è impossibile. Un software fa quello per cui è stato programmato quindi emerge qualcosa aggiunge qualcosa al tuo world. E su questo non ci piove perchè per emerge non c'è differenza tra una libreria da aggiornare a una versione successiva o un pacchetto mai installato.

 

Invece devo ammettere che ha ragione lui, devono aver cambiato la funzionalità di emerge ... ho provato a lanciare emerge -u di uno dei pacchetti segnalati da eix -u e in world non c'è finito ...

@Maialovic

Beh, che dire sei stato fortunato, non ostante tu abbia agito impulsivamente, senza documentarti e contro il parere del forum sei stato baciato dalla fortuna visto che evidentemente i develop hanno modificato in qualche modo il funzionamento di portage (suppongo che abbiano reso implicito il -1 quando si usa -u o magari è un baco di emerge), ciò non toglie che sei stato avventato, non ti sei documentato e te ne sei infischiato delle nostre risposte, tanto vale fare postare qui le tue richieste ...

----------

## Ic3M4n

io vedo che vi siete tutti infervorati con questo fatto strano. La situazione è abbastanza semplice ed anche la soluzione è abbastanza semplice, basta leggersi la man di emerge come avevo già scritto sopra.

@Maialovic: vuoi aggiornare anche quei pacchetti che ti risultano con la [U] in eix?

```
emerge -uDN --with-bdeps y world
```

----------

## Kernel78

 *Ic3M4n wrote:*   

> io vedo che vi siete tutti infervorati con questo fatto strano. La situazione è abbastanza semplice ed anche la soluzione è abbastanza semplice, basta leggersi la man di emerge come avevo già scritto sopra.
> 
> 

 

Mi sa che non hai colto bene il problema, il fatto è che emerge senza l'opzione -1 ha sempre aggiunto a world (per evitare questo infatti si usava -1), abbiamo notato che Maialovic non ha tenuto conto di questo e che ha lanciato il suo script.

Buon per lui che devono essere state fatte delle modifiche a emerge e per qualche motivo questo non aggiunge più a wolrd (almeno con -u).

----------

## MeMyselfAndI

Si ma nello script lui usa "emerge" e basta, non emerge -u

----------

## Kernel78

 *MeMyselfAndI wrote:*   

> Si ma nello script lui usa "emerge" e basta, non emerge -u

 

kakkio è vero, peggio ancora (mi ero fissato con il -u di eix) ...

a questo punto o i pacchetti sono stati aggiunti a world o è un b[/quote]ug grosso o la documentazione deve essere aggiornata ...

----------

## Ic3M4n

@Kernel78: la -u non ha mai aggiunto nulla al file di world. come la -N, difatti un update implica che il programma sia già installato e quindi se era in world, c'era già, altrimenti vuol dire che è dipendenza di qualcosa.

@MeMyselfAndI: esatto.

Il problema è alla base. perchè devo utilizzare uno script che parsa l'output di un programma per trovare i pacchetti installati utilizzati "solo in fase di compilazione" che possono essere aggiornati quando emerge lo fa da solo con l'opzione --with-bdeps y?

----------

## Maialovic

raga.......mi ero semplicemente di ricopiare la -u dopo emerge.....tutto qui...cmq vor di che sono stato fortunato ed intraprendente.....perche secondo me era scontanto che se si aggiornava un pacchetto se era in world ci rimaneva e se non vi era non vi entrava ...chiaro?

----------

## Super_Treje

Io uso eix e non ho avuto mai problemi.

Eseguo queste operazioni : 

```

emerge --sync --quiet

```

Cosi' ho il portage aggiornato, io lo aggiorno 1 volta a settimana perche' installo veramente quasi nulla dopo che ho una gentoo perfettamente ottimizzata con tutto il necessario.

Squadra che vince non si cambia !  :Very Happy: 

E poi vedere la shell che scrolla mi innervosisce perche' spreca risorse inutilmente  :Cool:  .

"Devi correre per me non per te!!".

```

emerge --update --deep --newuse world -pv

```

e mi leggo che cosa "lui vorrebbe aggiornare", se mi sta' bene sia cosa "vorrebbe aggionare" e sia "come", cioe' con quali use abilitate/disabilitate gli do' il comando senza il -pv, altrimenti modifico fino a quando non sono soddisfatto e poi faccio partire l'aggiornamento globale.

Alla fine per vedere se il sistema e' tutto ok lancio : 

```

revdep-rebuild

```

Se vedo che tutti gli output sono ok, concludo felice e contento e provo se l'aggiornamento ha lasciato il pc orientativamente prestante come prima oppure no (dipende ovviamente da che diavolo ha installato!).

```

update-eix

```

Cosi' ho il database di eix aggiornato e posso usare eix senza problemi.

Bye  :Smile: 

----------

## bandreabis

 *Super_Treje wrote:*   

> *

 

Beh, è così che andrebbe fatto....   :Wink: 

----------

