Ports mittels script in jails installieren

From: Dura Zell <dura-zell(at)freenet.de>
Date: Tue, 24 May 2005 10:09:05 +0200

Guten Morgen

Ich habe mir einige jails gebaut in denen ich meine Dienst laufen lassen
will.
Um einen Port in diesen jails zu installieren habe ich mir ein kurzes
Shellscript geschrieben:
--------
#!/usr/local/bin/bash

. /etc/jailhouse-distribute.conf

clear
cd /usr/ports/$1
for i in `seq -s $jailstart -e $jailcount `
do
    echo "Installiere /usr/ports/$1 in jail ${jailname[$i]}
(${jailpath[$i]})"
    if [ ${jailactive[$i]} = "yes" ]; then
        make clean install DESTDIR=${jailpath[$i]}
    else
        echo "Jail ${jailname[$i]} is not active: Skipped!"
    fi
    echo "Abgeschlossen: /usr/ports/$1 make clean install in
${jailpath[$i]}"
done
--------
Ein Eintrag in /etc/jailhouse-distribute.conf sieht besipielsweise so aus:
--------
############################ Arrays fuer die jails
##########################
jailstart=1 # Anfang
jailcount=15 # Anzahl der jails
###

jailname[1]="proxy" # Symbolischer name
jailpath[1]="/jail/eigen/proxy" # absoluter pfad
jailhostname[1]="proxy.domain" # hostname
jailip[1]="192.168.9.1" # IP Adresse
jailexec[1]="/bin/sh /etc/rc" # Startbefehl
der jail
jailactive[1]="yes" # Port in der
jail installieren?
... SNIP...
--------

Das Script wird beispielsweise mit "./distribute.bash net/nss_ldap"
aufgerufen (Wernn ich nss_ldap installieren moechte) und läuft auf dem
Hostsystem.

Leider funktioniert das Ganze nicht so wie ich es mir vorgestellt habe.
Das Script baut wie gewuenscht den Port, bei der Installation bricht er
jedoch mit der Meldung ab der Port sei schon installiert worden. Das ist
jedoch nicht der Fall, weder auf dem Gastsystem noch in der jail.

Mein Versuch das mit jexec $JID "cd /usr/ports/$1 && /usr/bin/make clean
install" zu lösen schlug genauso fehl wie der Versuch mit "jexec $JID
/usr/bin/make clean install -f /usr/ports/$1/Makefile" (in beiden Fällen
"no such File or Directory") und der Versuch ein "make clean reinstall"
laufen zu lassen (gleiche Fehlermeldung: Port is already installed...").
Ich vermute ich hab hier einen elementaren Denkfehler, komme aber nicht
drauf was es ist. Eigentlich muesste das DESTDIR=$jailpath doch den Port
in die gewünschte jail installieren oder etwa nicht?

Meine Suche in den einschlägigen Boards und mit Google war auch nicht
sehr erfolgreich. Entweder bin ich der einzige der einen Port auf
mehreren jails installieren möchte oder, was ich eher glaube, es gibt
ein Tool dafür das ich noch nicht entdeckt habe. In diesem Fall würde
ich mich freuen wenn mir jemand da einen Hinweis geben könnte. Mit wäre
es wichtig das der Port, wenn möglich, für mein System gebaut wird. Die
Rechenzeit ist nicht so wichtig, der Computer "langweilt" sich eh die
meiste Zeit.

Ich würde mich freuen wenn mir da jemand einen Tipp oder einen Link
geben könnte der mir hilft das Problem zu loesen da ich selber nicht
mehr weiterkomme.

Mit freundlichen Grüßen,
Sven Mertens

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 24 May 2005 - 10:10:01 CEST

search this site