View previous topic :: View next topic |
Author |
Message |
albazeus Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Porky.gif)
Joined: 03 Sep 2003 Posts: 81
|
Posted: Sun Sep 18, 2005 12:40 pm Post subject: Dedicare un pc della rete alla compilazione |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
Ic3M4n Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/108089865444d4c570e38bb.gif)
Joined: 02 Nov 2004 Posts: 3489 Location: Bergamo.
|
Posted: Sun Sep 18, 2005 12:48 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
!equilibrium Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/10751772074409c2c3ce8ec.png)
Joined: 06 Jun 2004 Posts: 2109 Location: MI/BG/LC
|
Posted: Sun Sep 18, 2005 12:48 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
albazeus Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Porky.gif)
Joined: 03 Sep 2003 Posts: 81
|
Posted: Sun Sep 18, 2005 1:49 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
makoomba Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/54100765943a2d293cd61e.jpg)
Joined: 03 Jun 2004 Posts: 1856
|
Posted: Sun Sep 18, 2005 1:55 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
Ic3M4n Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/108089865444d4c570e38bb.gif)
Joined: 02 Nov 2004 Posts: 3489 Location: Bergamo.
|
Posted: Sun Sep 18, 2005 1:58 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
albazeus Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Porky.gif)
Joined: 03 Sep 2003 Posts: 81
|
Posted: Sun Sep 18, 2005 2:22 pm Post subject: |
|
|
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. ![Neutral :|](images/smiles/icon_neutral.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
!equilibrium Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/10751772074409c2c3ce8ec.png)
Joined: 06 Jun 2004 Posts: 2109 Location: MI/BG/LC
|
Posted: Sun Sep 18, 2005 2:25 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
lavish Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
Joined: 13 Sep 2004 Posts: 4296
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Ic3M4n Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/108089865444d4c570e38bb.gif)
Joined: 02 Nov 2004 Posts: 3489 Location: Bergamo.
|
Posted: Sun Sep 18, 2005 2:33 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
makoomba Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/54100765943a2d293cd61e.jpg)
Joined: 03 Jun 2004 Posts: 1856
|
Posted: Sun Sep 18, 2005 2:40 pm Post subject: |
|
|
@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 |
|
![](templates/gentoo/images/spacer.gif) |
Onip Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/14414636074b138f3ed54ce.png)
Joined: 02 Sep 2004 Posts: 2912 Location: Parma (Italy)
|
Posted: Sun Sep 18, 2005 2:40 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
albazeus Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Porky.gif)
Joined: 03 Sep 2003 Posts: 81
|
Posted: Sun Sep 18, 2005 3:02 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
!equilibrium Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/10751772074409c2c3ce8ec.png)
Joined: 06 Jun 2004 Posts: 2109 Location: MI/BG/LC
|
Posted: Sun Sep 18, 2005 3:33 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
gutter Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/67030318436dd16c1dd5e.jpg)
Joined: 13 Mar 2004 Posts: 7162 Location: Aarau, Aargau, Switzerland
|
Posted: Sun Sep 18, 2005 3:50 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
Luca89 Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/15529267248502dd4c2bab.jpg)
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Sun Sep 18, 2005 7:21 pm Post subject: |
|
|
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 :wink:](images/smiles/icon_wink.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
albazeus Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Porky.gif)
Joined: 03 Sep 2003 Posts: 81
|
Posted: Sun Sep 18, 2005 7:58 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
Luca89 Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/15529267248502dd4c2bab.jpg)
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Sun Sep 18, 2005 8:12 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
|