Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Dedicare un pc della rete alla compilazione
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
albazeus
Tux's lil' helper
Tux's lil' helper


Joined: 03 Sep 2003
Posts: 81

PostPosted: Sun Sep 18, 2005 12:40 pm    Post subject: Dedicare un pc della rete alla compilazione Reply with quote

Ciao a tutti,

ho un pc solo soletto, praticamente inutilizzato, che vorrei utilizzare per compilare i pacchetti con le cflags del mio portatile.
Ho già letto qualcosa di interessante, ma non quello che vorrei fare io, e cioè dare un lista di pacchetti da compilare
a tale e pc, scollegarmi/spegnere il portatile e poi trovarmeli già pronti in una directory da sincronizzare.

Più o meno so come fare, l' unico vero problema è che non si possono compilare i pacchetti e basta se il pacchetto
ha delle dipendenze. Cioè bisogna installare prima le dipendenze e poi si può compilare tale pacchetto, giusto?

Questo è un problema se i 2 pc hanno cflags diverse, perchè dovrei installare le dipendenze sia sul portatile che sul "server",
e quindi non ne varrebbe la pena.

C'è un modo per costruire solo i pacchetti binari senza dover installare le dipendenze?

Qualcuno ha mai provato a fare una cosa del genere?


Last edited by albazeus on Sun Sep 18, 2005 3:03 pm; edited 1 time in total
Back to top
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Sun Sep 18, 2005 12:48 pm    Post subject: Reply with quote

credo che con un piccolo sistema isolato (tipo estrai uno stage 3 e ti chrootti dentro puoi creare i pacchetti che ti servono semplicemente con
Code:
emerge --buildpkgonly --nodeps nomepacchetto

logicamente nell'ambiente chroottato ci devi mettere il make.conf e file accessori vari del portatile.

in ogni caso un RTFM di man make.conf e man emerge credo che siano necessari.
Back to top
View user's profile Send private message
!equilibrium
Bodhisattva
Bodhisattva


Joined: 06 Jun 2004
Posts: 2109
Location: MI/BG/LC

PostPosted: Sun Sep 18, 2005 12:48 pm    Post subject: Reply with quote

http-replicator mi pare dovrebbe fare quello di cui necessiti (oltre a fare da proxy/mirror per il sync del portage)

comunque non ne sono sicuro al 100%, se qualcuno può smentire/confermare, ben venga.
_________________
Arch Tester for Gentoo/FreeBSD
Equilibrium's Universe

all my contents are released under the Creative Commons Licence by-nc-nd 2.5
Back to top
View user's profile Send private message
albazeus
Tux's lil' helper
Tux's lil' helper


Joined: 03 Sep 2003
Posts: 81

PostPosted: Sun Sep 18, 2005 1:49 pm    Post subject: Reply with quote

Ic3M4n wrote:
credo che con un piccolo sistema isolato (tipo estrai uno stage 3 e ti chrootti dentro puoi creare i pacchetti che ti servono semplicemente con
Code:
emerge --buildpkgonly --nodeps nomepacchetto

logicamente nell'ambiente chroottato ci devi mettere il make.conf e file accessori vari del portatile.

in ogni caso un RTFM di man make.conf e man emerge credo che siano necessari.


Grazie per il rtfm ma --nodeps non era la risposta che cercavo visto che, come da manuale, il build può fallire (e fallisce) se le dipendenze non sono
soddisfatte.
Forse si potrebbe con un chroot e installando le dipendenze ma cmq ritornerebbe il problema delle cflags incompatibili.

Mi sembra di capire che la cosa non si può fare se le due macchine non sono praticamente uguali... :(
Sbaglio?


@DarkAngel76

In che senso http-replicator farebbe al caso mio? Potresti essere più preciso?
Se non ho capito male serve per fare da proxy.
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Sun Sep 18, 2005 1:55 pm    Post subject: Reply with quote

http-replicator è un proxy per distfiles/packages ed è un'ottimo tool da utilizzare in lan quando ci sono più macchine con gentoo.

l'emerge --nodeps --buildpkgonly del pacchetto puoi farlo se sono soddisfatte tutte le dipendenze necessarie alla compilazione.
ad esempio, non puoi creare un binario di mod_php con USE="mysql" se non hai prima installato mysql sulla macchina.
Back to top
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Sun Sep 18, 2005 1:58 pm    Post subject: Reply with quote

albazeus wrote:
Grazie per il rtfm ma --nodeps non era la risposta che cercavo visto che, come da manuale, il build può fallire (e fallisce) se le dipendenze non sono
soddisfatte.
Forse si potrebbe con un chroot e installando le dipendenze ma cmq ritornerebbe il problema delle cflags incompatibili.

Mi sembra di capire che la cosa non si può fare se le due macchine non sono praticamente uguali... :(
Sbaglio?


no, non è necessario che le macchine siano praticamente uguali... altrimenti come ti spieghi la presenza di pacchetti binari in gentoo?
per il nodeps... non saprei come risolvere allora... o ti fai un'immagine del portatile sul fisso... le dipendenze così sono soddisfatte. poi potresti continuare con buildpkg anzichè l'only in modo che ti rimangano installati. certo che così hai praticamente una distribuzione sul fisso.
Back to top
View user's profile Send private message
albazeus
Tux's lil' helper
Tux's lil' helper


Joined: 03 Sep 2003
Posts: 81

PostPosted: Sun Sep 18, 2005 2:22 pm    Post subject: Reply with quote

Ic3M4n wrote:

no, non è necessario che le macchine siano praticamente uguali... altrimenti come ti spieghi la presenza di pacchetti binari in gentoo?
per il nodeps... non saprei come risolvere allora... o ti fai un'immagine del portatile sul fisso... le dipendenze così sono soddisfatte. poi potresti continuare con buildpkg anzichè l'only in modo che ti rimangano installati. certo che così hai praticamente una distribuzione sul fisso.


La presenza dei binari in gentoo me la spiego col fatto che loro i pacchetti li compilano con le cflags più compatibili che esistano visto che serviranno per migliaia di pc diversi.
Io invece, che ho un target di n. 1 pc, posso (potrei) anche permettermi qualche ottimizzazione in più. Ma giusto oggi ho scoperto quanti danni si possono fare usando cflags sbagliate (-msse2 su un pc che non ce l' ha).

L' unica cosa che mi viene in mente di fare è:
- portatile: emerge -pv <pkg> e vedo le dipendenze che mi servono
- server: emerge <dipendenze>
- server: emerge --buildpkgonly --nodeps <dipendenze> <pkg> con le cflags del portatile

Il problema è:
- Compilo sempre 2 volte le dipendenze
- Potrei avere problemi con le dipendenze ricorsive

Non vedo altra via di uscita. :|
Back to top
View user's profile Send private message
!equilibrium
Bodhisattva
Bodhisattva


Joined: 06 Jun 2004
Posts: 2109
Location: MI/BG/LC

PostPosted: Sun Sep 18, 2005 2:25 pm    Post subject: Reply with quote

albazeus wrote:
@DarkAngel76
In che senso http-replicator farebbe al caso mio? Potresti essere pi� preciso?
Se non ho capito male serve per fare da proxy.


cito direttamente dal thread ufficiale di http-replicator nel forum gentoo:
Code:
Http-Replicator will serve binary file to clients!! Build once and use binary packages for the rest of your gentoo herd!! Great for mass installs!! Other http or ftp daemons not required!!


ti fai uno stupidissimo script bash dove fai compilare i pacchetti binari di cui necessiti con tutte le dipendenze e quando ha finito li copia nella cache di http-replicator, cosi quando devi installare quei pacchetti sul portatile ti basta dare un "emerge -k pacchetto" o "emerge -gk pacchetto" e ti scarica il binario da http-replicator.

my 2 cents:
- cercare sul forum
- man emerge
_________________
Arch Tester for Gentoo/FreeBSD
Equilibrium's Universe

all my contents are released under the Creative Commons Licence by-nc-nd 2.5
Back to top
View user's profile Send private message
lavish
Bodhisattva
Bodhisattva


Joined: 13 Sep 2004
Posts: 4296

PostPosted: Sun Sep 18, 2005 2:29 pm    Post subject: Reply with quote

piccolo consiglio: leva il tag [OT] dal titolo del thread ...
_________________
minimalblue.com | secgroup.github.io/
Back to top
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Sun Sep 18, 2005 2:33 pm    Post subject: Reply with quote

albazeus wrote:
La presenza dei binari in gentoo me la spiego col fatto che loro i pacchetti li compilano con le cflags più compatibili che esistano visto che serviranno per migliaia di pc diversi.
Io invece, che ho un target di n. 1 pc, posso (potrei) anche permettermi qualche ottimizzazione in più. Ma giusto oggi ho scoperto quanti danni si possono fare usando cflags sbagliate (-msse2 su un pc che non ce l' ha).

evvai con l'ennesimo thread sulle cflags! va beh dai... due soluzioni adesso le hai.. vedi se ti possono andare bene...
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Sun Sep 18, 2005 2:40 pm    Post subject: Reply with quote

@DarkAngel76
http-replicator si occupa esclusivamente della distribuzione dei packages, il problema di albazeus riguarda la produzione del binario.

@albazeus
con CFLAGS/USE differenti, imho, il gioco non vale la candela.
tanto vale usare distcc e farti aiutare dal muletto quando compili con il portatile.
Back to top
View user's profile Send private message
Onip
Advocate
Advocate


Joined: 02 Sep 2004
Posts: 2912
Location: Parma (Italy)

PostPosted: Sun Sep 18, 2005 2:40 pm    Post subject: Reply with quote

secondo me la soluzione più praticabile (bada, non ho detto l'unica, non so se si può fare come intendi tu) è avere cflags comuni ai due pc (magari i686). emergi sul server con, a seconda delle volte, --buildpkg o --buildpkgonly e poi sul client emergi con --usepkg.
Un'altra via potrebbe essere quella di usare distcc, e su questo ci sono n-mila thread...
_________________
Linux Registered User n. 373835

Titus Lucretius Carus, De Rerum Natura - Tantum religio potuit suadere malorum
Back to top
View user's profile Send private message
albazeus
Tux's lil' helper
Tux's lil' helper


Joined: 03 Sep 2003
Posts: 81

PostPosted: Sun Sep 18, 2005 3:02 pm    Post subject: Reply with quote

makoomba wrote:

@albazeus
con CFLAGS/USE differenti, imho, il gioco non vale la candela.
tanto vale usare distcc e farti aiutare dal muletto quando compili con il portatile.


Ok. Il fatto è che cercavo il modo di evitare di tenere il portatile acceso.
Credo che mi orienterò su distcc.

Grazie a tutti.
Back to top
View user's profile Send private message
!equilibrium
Bodhisattva
Bodhisattva


Joined: 06 Jun 2004
Posts: 2109
Location: MI/BG/LC

PostPosted: Sun Sep 18, 2005 3:33 pm    Post subject: Reply with quote

makoomba wrote:
@DarkAngel76
http-replicator si occupa esclusivamente della distribuzione dei packages, il problema di albazeus riguarda la produzione del binario.

@albazeus
con CFLAGS/USE differenti, imho, il gioco non vale la candela.
tanto vale usare distcc e farti aiutare dal muletto quando compili con il portatile.



non ho detto che http-replicator compila, ho detto che con un semplice script e http-replicator automatizzi tutta la procedura richiesta da @albazeus, ha scritto espressamente che "deve" spegnere il notebook, per tanto in un modo o nell'altro si deve loggare all'altro pc e dare un emerge., con un po di fantasia e bash può fare tutto in unico comando, non ci vedo nulla di trascendentale in tutto ciò; è molto + semplice e sicuro che usare altre soluzioni + macchinose o il distcc (che @albezeus non può usare visto che vuole spegnere il notebook) o compilarsi i binari e copiarseli via ssh.

questa è la soluzione che adotto io quando devo creare dei binari da installare su + macchine e ho poco tempo a disposizione. tutto quello che serve:
- una buona conoscenza delle opzioni di emerge
- uno script in bash per automatizzare la creazione dei binari e delle relative dipendenze
- impostare delle CFLAGS generiche che garantiscano la compatibilità dell'eseguibile su architetture diverse
- installare e configurare http-replicator sul pc che dovrà compilare

poi ognuno è libero di fare quello che vuole
_________________
Arch Tester for Gentoo/FreeBSD
Equilibrium's Universe

all my contents are released under the Creative Commons Licence by-nc-nd 2.5
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Sun Sep 18, 2005 3:50 pm    Post subject: Reply with quote

albazeus wrote:

Credo che mi orienterò su distcc.
Grazie a tutti.


Da quanto ho capito dai post precedenti penso sia questa l'unica soluzione che permetta di soddisfare le tue particolari esigenze.
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
Luca89
Advocate
Advocate


Joined: 27 Apr 2005
Posts: 2107
Location: Agrigento (Italy)

PostPosted: Sun Sep 18, 2005 7:21 pm    Post subject: Reply with quote

Un'altra soluzione potrebbe essere questa:

  • Creare sul server una directory contenente una immagine del tuo sistema del portatile
  • Lanciare un "emerge -uDN world" dal server settando la variabile ROOT a quella della directory sopra menzionata (ulteriori informazioni sulla variabile ROOT nelle pagine di manuale).
  • Creare i binari dei pacchetti aggiornati e poi portarli nel portatile.


In questo modo risolvi il problema delle dipendenze e ti crei i pacchetti, però ci sono due problemi.


  • Il make.conf e la cartella /etc/portage, magari con uno script le sovrascrivi momentaneamente quando deve aggiornare per il portatile.
  • Non so bene quali programmi emerge utilizza cambiando la variabile ROOT (se quelli del sistema corrente o quelle di quello specificato nella variabile), in tal caso basta utilizzare CFLAGS più generiche.


Ciao :wink:
Back to top
View user's profile Send private message
albazeus
Tux's lil' helper
Tux's lil' helper


Joined: 03 Sep 2003
Posts: 81

PostPosted: Sun Sep 18, 2005 7:58 pm    Post subject: Reply with quote

Luca89 wrote:
Un'altra soluzione potrebbe essere questa:


E' lo stesso discorso del chroot (credo): rimane sempre il problema che le dipendeze devono essere installate; e se le installo con le cflags del portatile prima o poi qualcosa va storto.

L' unica mi sembra proprio quella di installare le dipendenze sul server e poi costruire le dipendenze e il pacchetto per il portatile.
Certo che fino a che le dipendenze sono 5 o 6 pacchetti ok, me compilare 2 volte gnome o kde è un po' una rottura, soprattutto se sul server non servono.

Saluti
Back to top
View user's profile Send private message
Luca89
Advocate
Advocate


Joined: 27 Apr 2005
Posts: 2107
Location: Agrigento (Italy)

PostPosted: Sun Sep 18, 2005 8:12 pm    Post subject: Reply with quote

Bhe l'immagine del sistema del portatile intendevo di lasciarla così non devi ricompilare le dipendenze (che ovviamente non vengono compilate per / ma per la root dell'immagine) magari se hai problemi di spazio puoi fare un tarball e scompattarlo solo quando devi aggiornare (a scapito di un cospicuo uso di risorse per la creazione e scompattazione del suddetto tarball).

P.S: Tra l'altro così facendo hai sempre una immagine del sistema del portatile e quindi in caso di problemi non devi reinstallare da zero.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum