# Dipendenze circolari

## djinnZ

Come posso fare a creare uno schema leggibile delle dipendenze circolari?

----------

## !equilibrium

emerge -auDNtv world

----------

## djinnZ

ok ho finito di emergere il sistema (accidenti a me ed al volere Ooo mozilla etc compilati, ma chi è causa del suo mal...) e quindi ho provato ma non è questo che mi serviva e non mi riporta nulla.

Quel che mi serve conoscere è quali sono le dipendenze circolari presenti su un sistema completo non le devo risolvere ma solo ottimizzare le use (uso il metodo tutto affermativo in make.conf tutto negativo in package.use) e capire meglio cosa diavolo ho installato.

----------

## crisandbea

se ho capito bene, forse questo può aiutarti.

```
euse -i
```

----------

## djinnZ

No, quello che cerco è analizzare la relazione tra dipendenze circolari ed eventuali useflag globali nell'ipotesi di ricostruire il sistema da stage 3 iniziando con un emerge -eDNu system.

Ad esempio, definire gtk globale impilca che gcc dipende da gtk (e tutto dipende da gcc), qt e odbc e via dicendo.

Questo lo vorrei poter vedere sia su uno stage 3 "pulito" che su un sistema completo.

----------

## crisandbea

scusami ma allora non ho capito con esattezza che devi fare....  :Sad: 

----------

## GiRa

Prendi tutte le use che hai in make.conf, dalle in pasto ad euse -i, se te le segnala come use globali le lasci lì, altrimenti le metti in package.use.

So che non chiedi questo ma se vuoi un sistema pulito questo mi pare il minimo passo da fare.

----------

## djinnZ

Dunque:

ho il mio bravo make.conf con la solita selva di use su un sistema in installato ed apparentemente coerente, vorrei individuare le dipendenze circolari installate e quali use flag le innescano, per verificarle "per cultura" e vorrei farmi un elenco per poter lanciare un qualcosa del genere su uno stage3 (ma non è questo il mio interesse primario)

cp [make.conf con il primo gruppo di use flag] /etc/make.conf

emerge -e world

emerge [elenco pacchetti richiesti dalle dipendenze circolari successive]

cp [make.conf completo] /etc/make.conf

emerge -aDNuv world

emerge [pacchetti nel world della installazione originale]

----------

## crisandbea

ma per dipendenze circolari ke intendi ???

ciauz

----------

## Kernel78

 *crisandbea wrote:*   

> ma per dipendenze circolari ke intendi ???

 

L'ha spiegato prima *Quote:*   

> Ad esempio, definire gtk globale impilca che gcc dipende da gtk (e tutto dipende da gcc), qt e odbc e via dicendo. 

 

----------

## crisandbea

 *Kernel78 wrote:*   

>  *crisandbea wrote:*   ma per dipendenze circolari ke intendi ??? 
> 
> L'ha spiegato prima *Quote:*   Ad esempio, definire gtk globale impilca che gcc dipende da gtk (e tutto dipende da gcc), qt e odbc e via dicendo.  

 

ok, però gtk globale, implica che tu compile gcc  con le gtk, fino a qui ok, ovvio anke che tutto dipende da gcc, ma non capisco il nesso con il suo problema,   sarò stonato io ultimamente ma non capisco....   :Embarassed: 

----------

## djinnZ

riportandomi all'esempio precedente (ma solo per gtk/gcc e odbc/qt)

aggiungo a /etc/make.conf le use (compresa qt3) ma non gtk e odbc

emerge -e world

emerge -1 gtk

aggiungo gtk e odbc a /etc/make.conf

emerge -aDNuv world (e ricompilerà anche gcc e qt, da questo non posso scappare)

e poi finisco di installarmi gli altri pacchetti.

nel caso di qt3 e odbc, odbc richiede l'installazione del pacchetto unixODBC che però richiede la presenza preventiva delle librerie qt che a loro volta richiedono detto pacchetto per poter implementare l'odbc al loro interno. L'unica cosa che puoi fare è installare unixODBC prima (solo perchè è meno pachiderma delle qtlib) senza supporto qt, installare le qt e ricompilare odbc con le qt installate, funziona anche il contrario ma la differenza è che ci metti un'ora in più.

Per questioni pratiche preferisco avere tutte le use definite globalmente e solo le eccezioni in package.use e poi la cosa non cambia, quella di qt/odbc la ricordo perchè mi ci trovai alla prima installazione gentoo, ma voglio vedere quali altre posso innescare per decidere quali use avere e quali no sui pacchetti coinvolti, cambia poco se uso il metodo classico delle sole globali in make.conf ed eccezioni e locali in package.use .

----------

## crisandbea

 *djinnZ wrote:*   

> riportandomi all'esempio precedente (ma solo per gtk/gcc e odbc/qt)
> 
> aggiungo a /etc/make.conf le use (compresa qt3) ma non gtk e odbc
> 
> emerge -e world
> ...

 

per vedere se una use è da abilitare globalmente o meno, non puoi farlo con 

```
euse -i <flaguse>
```

non capisco il tuo voler complicare la cosa....

ovviamente spero di aver capito questa volta..

ciauz

----------

## Elbryan

dep -w

non è quello che serve?

----------

## crisandbea

 *Elbryan wrote:*   

> dep -w
> 
> non è quello che serve?

 

direi di no, dep -w verifica le ridondanze in world.

ciauz

----------

## syntaxerrormmm

Alcune dipendenze non sono hardcoded nelle ebuild: in particolare, stando a quanto si dice qui, tutti i pacchetti presenti in world e tutti quelli che non lo sono ma che sono installati dipendono anche da system. Una cosa simile, peraltro, sarebbe difficile da gestire per qualsiasi programma per le dipendenze circolari.

Se parliamo di dipendenze circolari strictu senso, in Gentoo non devono esistere: il pacchetto a che dipende da b e b che dipende da a è un bug da riportare sul Bugzilla.

Ciao.

----------

## Ic3M4n

non dovrebbero esistere, però se tu abiliti la flag use gtk a gcc ricadi in questa casistica.

----------

## GiRa

 *Ic3M4n wrote:*   

> non dovrebbero esistere, però se tu abiliti la flag use gtk a gcc ricadi in questa casistica.

 

Si, ma se uno gestisce correttamente le USE, distinguendole tra locali e globali, non ha mai problemi.

----------

## Onip

 *GiRa wrote:*   

> Si, ma se uno gestisce correttamente le USE, distinguendole tra locali e globali, non ha mai problemi.

 

il fatto che gcc richieda gtk e queste richiedano a loro volta gcc non dipende dal fatto che la USE gtk sia definita in make.conf o in package.use . E' una cosa proprio strutturale.

----------

## GiRa

Che però viene tenuta sotto controllo dagli sviluppatori.

Se uno cambia strada invece si ritrova da solo.

----------

