[BSD] freebsd build farm

Adam Szilveszter sziszi at bsd.hu
2008. Jan. 14., H, 21:30:54 CET


Szia!

On Mon, Jan 14, 2008 at 06:09:53PM +0100, Laszlo Nagy wrote:
> 1. Minden gépen egyszerre frissítem a ports tree-t

Ezt is lehet, és a portupgrade-hez kell is, de ha csak a package-ket
akarnád használni ahhoz nem lenne muszáj (ld pkg_add) A legegyszerűbb
egyébként, ha egy gépet kinevezel mirrornak és arra cvsup-olsz, vagy
portsnap-ozol, és utána a többit már onnan látod el a ports tree-vel,
így mindenhol tök egyforma lesz.

> 2. Egy jó erős gépen lefordítok mindent, és megkérem arra hogy bináris 
> csomagokat is csináljon. (Illetve majdnem mindent, fölteszem rá azokat a 
> portokat amiket a legtöbb gépen használnak.) Közben az "éles" gépeket 
> használják a régi csomagokkal.

Igen.

> 3. A többi gépre bemásolom a bináris csomagokat és ELVILEG ezeken a 
> gépeken a "portupgrade -aP" már alig fog valamit fordítani forrásból.

Így van, ez jó ötlet.

> cd /usr/ports/x11/gnome2
> make package-recursive
> 
> Erre képződni fog egy csomó bináris csomag.

Így van. Még az az előnyöd is megvan, hogy ha előtte nyomsz egy make
config-recursive-et akkor az összes options menü is feljpn szép sorban
és beállíthatod amit akarsz.

> Az első kérdés: nincs kedvem kézzel futtatni az összes make parancsot. 
> Portupgrade segítségével hogyan készíthetek csomagokat? Tudom van egy -p 
> kapcsolója:
> 
> 
> -p
> --package Build a package when each specified port is
> installed or upgraded. If a package is upgraded
> and its dependent packages are given from the com-
> mand line (including the case where -r is speci-
> fied), build packages for them as well.
> 
> de ez azt írja hogy a "dependent" portokhoz csak akkor csinál package-t 
> ha meg lettek adva parancsorban, illetve -r kapcsolóval. 

Igen.

> Igen ám, de én 
> -a kapcsolót szeretnék megadni. "portupgrade -ap" megfelelő lesz? (A 
> doksi szerint nem, mert a -p nem vonatkozik a dependent packages-re 
> abban az esetben ha -a kapcsolót használok.)

Szerintem sem, bár nem próbáltam. Ellenben a portupgrade -arp már jobb
lehet, csak valószínűleg eléggé erőforráspazarló, mert nem "jegyzi meg",
hogy ezt a package-t már egyszer egy másik port kedvéért legyártotta, és
újracsinálja. De a végére minden kész lesz. :-) De mondjuk a valóban
"nagy állatok", mint az OOo.org, vagy a gnome esetében tényleg van egy
top-level port, amit megadhatsz és azzal egy csomó függőséggel készen
leszel egyszerre. Ja és scriptelni is lehet, az ilyen "gyűjtő"  portok
neve úgyis ritkán változik.

> Második kérdés: ezeket a binárisokat hogyan használom föl a portupgrade 
> segítségével a többi gépen? Van ugyanis neki egy -P kapcsolója:

<...>

> Ez majdnem jó, de én csak az első felét szeretném. Nevezetesen, ha 
> PKG_PATH-ban megtalálja akkor használja azt. Ha nem találja, akkor azt 
> akarom hogy pkg_fetch helyett fordítsa le forrásból. Ilyen akkor lehet 
> ha valamelyik "éles" gépen van egy extra csomag amit a "fordító gép" nem 
> fordított le. Ezeket forrásból szeretném. Hogyan csináljam?

Szerintem úgy, hogy a PKG_FETCH változót a /bin/false-re állítod át,
mert azzal ugyan semmit sem fog letölteni. Ez és további jó ötletek a
portupgrade man vége felé, az EXAMPLES szekcióban :-)

Sok szerencsét!

Sz.
-- 
BSD: An Operating System, Not a Religion.



További információk a(z) BSD levelezőlistáról