# Sorgenti di Emerge...

## kNemo

Dove posso trovare i sorgenti di emerge (il gestore pacchetti) ???

ho cercato in lungo e in largo ma senza trovare niente...

Qualcuno di voi sa do sono ???

Grazie.

----------

## mambro

 *kNemo wrote:*   

> Dove posso trovare i sorgenti di emerge (il gestore pacchetti) ???
> 
> ho cercato in lungo e in largo ma senza trovare niente...
> 
> Qualcuno di voi sa do sono ???
> ...

 

vim /usr/bin/emerge

----------

## fedeliallalinea

 *mambro wrote:*   

> vim /usr/bin/emerge

 

Basta fare questo perche' e' scritto in python (quindi un linguaggio interpretato).

----------

## kNemo

Ma emerge sarebbe quello schifo li ???

Io mi aspettavo un mega programmone C...

Comunque grazie.  :Shocked: 

----------

## xchris

 *kNemo wrote:*   

> Ma emerge sarebbe quello schifo li ???
> 
> 

 

ei..

rispetto per il cuore di gentoo!  :Smile: 

non e' sempre valido il binomio complessità<-->ottimo sw

e linux + GNU al primo posto, emerge dopo ne sono la prova!

ciao

----------

## fedeliallalinea

 *kNemo wrote:*   

> Ma emerge sarebbe quello schifo li ???

 

Avresti saputo fare di meglio???

----------

## federico

A me non pare uno schifo.. E poi in python la chiarezza del codice e' fattore di pregio, non si semplicita'=stupidita'...

Forse e' il caso che tu ridefinisca il tuo concetto di "pregiato"

----------

## =DvD=

fresco fresco da M$ Win eh!! =D 

lol.... quando capirai un pochino di piu quanto è bello linux (altro), capirai come possono essere fatte le cose, e di li la rabbia per chi complica cose semplici, e te le vende come il meglio fattibile...

Dai hai solo iniziato col piede sbagliato... Una birra? lol

=D =D

----------

## silian87

 *Quote:*   

> Ma emerge sarebbe quello schifo li ??? 

 

AHAHHAH!!!!!!!!!!!!!!!   :Laughing:   :Laughing:   :Laughing:   :Laughing: 

Comuqnue ci sono anche altri file da guardare.

----------

## blacksword

 *kNemo wrote:*   

> Ma emerge sarebbe quello schifo li ???
> 
> Io mi aspettavo un mega programmone C...
> 
> Comunque grazie. 

 

AHAHAHahahahaAHahAHahah. Bella questa!

----------

## kNemo

...Schifo non era nel senso di emerge e' brutto come programma...

(io ho sempre apprezzato gentoo ed emerge)

ma mi aspettavo da una delle distro piu' "difficili" che fosse tutto (o quasi (non sono pazzo))

in C e assembler..

e non fatto con linguaggi interpretati...

va be...cmq W Gentoo

----------

## shev

 *kNemo wrote:*   

> e non fatto con linguaggi interpretati...
> 
> 

 

Gentoo è basata in gran parte su python, python è bello, versatile e potente. Non sempre interpretato vuol dire peggiore o di seconda classe  :Wink: 

----------

## Danilo

 *kNemo wrote:*   

> 
> 
> ma mi aspettavo da una delle distro piu' "difficili" che fosse tutto (o quasi (non sono pazzo))
> 
> in C e assembler..
> ...

 

 :Evil or Very Mad:   :Evil or Very Mad:   :Evil or Very Mad:   :Evil or Very Mad: 

ANATEMA 

 :Evil or Very Mad:   :Evil or Very Mad:   :Evil or Very Mad:   :Evil or Very Mad: 

 :Wink: 

Non so se hai letto qualcosa di python.

Ne ho sentito parlare bene (da riviste di computer win) anche prima di sapere che esistesse Gentoo...

Metti in conto che ha anche un compilatore just in time (psyco).

Sto mettendo in conto di impararlo per sostituirlo alla ksh unix (lavoro con c++ su macchine server) che IMHO sono a volte troppo limitate...

E poi a parte un rsync, una indicizzazione ed un check tra files di log non e' che faccia molto altro: in genere in questi casi si usa un interpretato...

Ciao  :Smile: 

PS: vuoi mettere la comodita' di inserire/rimuovere una chiamata al jit senza ricompilare? (per non parlare poi di una modifica per far usare ad esync wget al posto di rsync)?

----------

## silian87

 *Quote:*   

> va be...cmq W Gentoo

 

kNemo, io ti avviso, se continui cosi' qui' ti impiccano (ben ti vada). 

hjehehehehehehe   :Laughing:   :Laughing:   :Laughing: 

----------

## silian87

Poi, scusa tanto, solo dello script principale sono la bellezza di 2607 righe, mica poche! 

E poi se riesci a fare molto in meno spazio e' meglio. Alla microsoft dicono che ci sono 200 giga di sorgenti di windows, e cose simili, ma fin quando nel codice ci scrivono la favola di biancaneve sostituendo lo zio bill con biancaneve ci credo che il codice aumenta!

----------

## Danilo

 *silian87 wrote:*   

> 
> 
> E poi se riesci a fare molto in meno spazio e' meglio. Alla microsoft dicono che ci sono 200 giga di sorgenti di windows, e cose simili, ma fin quando nel codice ci scrivono la favola di biancaneve sostituendo lo zio bill con biancaneve ci credo che il codice aumenta!

 

Attualmente  sto manutenendo un progetto C++ (closed)  in cui per accedere ad una tabella oracle ci sono ben 3 classi IDENTICHE a parte per il nome: se questo significa usare bene il c++... 

A seconda di dove sei nell'applicativo chiamano una o un' altra classe

----------

## FonderiaDigitale

 *kNemo wrote:*   

> Ma emerge sarebbe quello schifo li ???
> 
> Io mi aspettavo un mega programmone C...
> 
> Comunque grazie. 

 

Non commento, vuoi perche la frase si commenta da se, vuoi xche si sa, i maremmani come me ci mettono poco a diventare drastici  :Smile: 

ma volevo dire che certe persone farebbero meglio a usare certe distribuzioni basate su rpm.

Ovviamente e' il mio modesto punto di vista  :Smile: 

----------

## flyinspirit001

prenderò in prestito il motto di slackware, che mai fu più appropriato:

simplicity is divine

bye

----------

## kaio

Che poi la filosofia di Linux/Unix è quella di creare tanti piccoli programmi specializzati che insieme eseguono un compito complesso

----------

## randomaze

 *kNemo wrote:*   

> Io mi aspettavo un mega programmone C...
> 
> 

 

Beh, tieni presente che emerge é solo un frontend che si "limita" a ravanare per risolvere le dipendenze.

L'eseguibile che fa realmente il lavoro si chiama "ebuild.sh" ed é scritto in bash!

----------

## flyinspirit001

randomaze sei sicuro? perchè io quel file non ce l'ho e mi sembra che emerge con le sue 2606 linee(senza modifiche fatte intendo) faccia tutto da se senza chiamare nessun sh...

magari mi sbaglio...

see ya

----------

## randomaze

 *flyinspirit001 wrote:*   

> randomaze sei sicuro? perchè io quel file non ce l'ho e mi sembra che emerge con le sue 2606 linee(senza modifiche fatte intendo) faccia tutto da se senza chiamare nessun sh...
> 
> 

 

Non ho il mio pc a portata di mano, cmq prova a fare qualcosa tipo:

```

qpkg -l portage | grep ebuild

```

credo che si trovi dalle parti di "/usr/lib/portage/bin"

----------

## flyinspirit001

azz ma è ebuild.sh..non emerge.sh   :Shocked: 

kiedo perdono, avevo letto emerge.sh....(devo andare dall'oculista mi sa..zio fanale...)

----------

## Danilo

 *flyinspirit001 wrote:*   

> randomaze sei sicuro? perchè io quel file non ce l'ho e mi sembra che emerge con le sue 2606 linee(senza modifiche fatte intendo) faccia tutto da se senza chiamare nessun sh...
> 
> magari mi sbaglio...
> 
> 

 

In effetti facendo un grep non si trova nulla.

Resta il fatto che lanciando esync si vede benissimo dal top che viene costantemente invocato ebuild.sh

Forse lo invoca un modulo importato.

----------

## flyinspirit001

ehm danilo, eccoti l'output del mio grep:

```

[0;01m/usr/bin/revdep-rebuild[0;0m

[0;01m/usr/sbin/mkebuild[0;0m

[33;01m/usr/share/doc/gentoolkit-0.2.0_pre8/revdep-rebuild[0;0m

[0;01m/usr/share/doc/gentoolkit-0.2.0_pre8/revdep-rebuild/TODO[0;0m

[0;01m/usr/share/doc/gentoolkit-0.2.0_pre8/revdep-rebuild/README[0;0m

[0;01m/usr/share/doc/gentoolkit-0.2.0_pre8/revdep-rebuild/AUTHORS[0;0m

[0;01m/usr/share/man/man1/revdep-rebuild.1.gz[0;0m

[0;01m/usr/share/man/man1/mkebuild.1.gz[0;0m

[0;01m/usr/lib/portage/bin/ebuild[0;0m

------------------[0;01m/usr/lib/portage/bin/ebuild.sh>---------------------------

/usr/sbin/ebuild -> ../lib/portage/bin/ebuild 1086853181

/usr/sbin/ebuild.sh -> ../lib/portage/bin/ebuild.sh 1086853181

[0;01m/usr/share/man/man1/ebuild.1.gz[0;0m

[0;01m/usr/share/man/man5/ebuild.5.gz[0;0m

```

byez!

----------

## Danilo

 *flyinspirit001 wrote:*   

> ehm danilo, eccoti l'output del mio grep:
> 
> (...)
> 
> byez!

 

Su quale file? io parlavo di un 

```

grep ebuild /usr/bin/emerge|grep "\.sh"

```

Avevo capito che il soggetto fosse emerge...

Comunque chiama qualcosa che richiama ebuild.sh

Ciao

----------

## randomaze

 *Danilo wrote:*   

> Avevo capito che il soggetto fosse emerge...
> 
> Comunque chiama qualcosa che richiama ebuild.sh
> 
> 

 

Credo che emerge non sia "solo" quel file ma anche un pò di librerie.

Librerie che stanno per diventare delle API.

----------

## =DvD=

include anche un bel po' di moduli...

[OT]Sapete un giorno mi misi a leggere il sorgente di emerge, o meglio, a leggere emerge,e  mi venne un idea che purtroppo non posso realizzare:

Scrivere una guida introduttiva al python sulla base di emerge. Saebbe bello.[/OT]

----------

## randomaze

 *=DvD= wrote:*   

> Scrivere una guida introduttiva al python sulla base di emerge.

 

Perché pensi di non potere? Fai con calma...

A me era venuto in mente di farlo per la bash ma qualcuno ci ha già pensato

----------

## kNemo

Scusate per quello che ho detto....   :Rolling Eyes: 

Oggi mi sono imparato il Python (un po') e devo

dire che anche se e' un interpretato e' davvero bello...

----------

## =DvD=

 *randomaze wrote:*   

> Perché pensi di non potere? Fai con calma...

 

Perchè tempo fa ho letto le caratteristiche di python... interpretato ma puoi buttarci dentro moduli compilati da altri linguaggi... per le cosette quotidiane è potentissimo!!

Poi mi son detto: do un occhiata a emerge e vedo di capirci qualcosa.... vuoto.

Allora ho pensato che per un gentooista con voglia di imparare una guida al pitone partendo da emerge sarebbe due volte costruttiva: in primis perchè impara python, e poi perchè lo impara dal cuore della sua distro, cosi se ci fossero migliorie da fare (vedi depclean) saprebbe dove mettere le mani (lo so l'ho fatta piu semplice di quello che è).

Se la scrivessi io dovrei prima impararmi il pitone, il che non mi dispiace... magari dopo l'esamone di fisica e quello di c++ posso anche mettermici.

Se qualcuno volesse aiutarmi...

@mods: apro un tipic?

----------

## shev

 *=DvD= wrote:*   

> @mods: apro un tipic?

 

Se hai davvero intenzione di dare vita al progetto, certamente  :Smile: 

----------

## FonderiaDigitale

c'e' gia' una guida eccellente: questa.

----------

## randomaze

 *FonderiaDigitale wrote:*   

> c'e' gia' una guida eccellente: questa.

 

Beh ma questo non dovrebbe essere un impedimenti per chi ritiene di poterne fare una migliore/diversa   :Twisted Evil: 

----------

## =DvD=

 *randomaze wrote:*   

> Beh ma questo non dovrebbe essere un impedimenti per chi ritiene di poterne fare una migliore/diversa  

 

Intanto mi leggo la guidozza... poi un documento che faccia mass commenting di emerge penso che sarebbe utile a tutti (almeno tutti quelli del mio livello, per crescere).

Cmq il link di fonderia è quasi quello che cercavo e non trovavo.  :Wink: 

----------

## federico

Per chi non conoscesse la filosofia python consiglio di lanciare python da shell quindi digitare "import this" , dare un buon invio e leggere il motto  :Smile:  [ctrl+d per uscire]

----------

## =DvD=

 *federico wrote:*   

> Per chi non conoscesse la filosofia python consiglio di lanciare python da shell quindi digitare "import this" , dare un buon invio e leggere il motto  [ctrl+d per uscire]

 

```
>>> import this

The Zen of Python, by Tim Peters

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you're Dutch.

Now is better than never.

Although never is often better than *right* now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!

>>>
```

----------

## federico

E io che volevo che ognuno se lo andasse a vedere da solo...

----------

## =DvD=

 *federico wrote:*   

> E io che volevo che ognuno se lo andasse a vedere da solo...

 

... e io, che tanto non lo fanno lol

----------

