Echelon1010000
Active Member
Hi!
Ich verwende 5.4-STABLE und habe mir einige jails aufgebaut. Jetzt möchte ich einen Port auf allen installieren. Das Verzeichnis /usr/ports ist über einen NullFS Mount in den jails eingehängt.
Um das ganze relativ unbeaufsichtigt laufen zu lassen habe ich mir ein kurzes Shellscript geschrieben:
Das Script rufe ich beispielsweise mit "./portverteiler net/nss_ldap" oder, um die bash zu installieren, mit "./portverteiler shells/bash" auf.
Leider klappt das nicht so wie ich mir das vorstelle. Der make Prozess läuft eine Weile, baut den Port aus den Quellen, so wie ich das will, dann meldet er mir das der Port bereits installiert ist. Auf der jail wo das installiert ist ist das jedoch definitv nicht der Fall. Auch auf dem Hostsystem nicht.
Wo ist hier mein Denkfehler? Oder gibt es eine andere Methode scriptgesteuert einen Port zu installieren? Wenn möglich aus den Quellen, nicht über pkg_add. Mach es Sinn das mit jexec zu probieren?
Gruß, Echelon
Ich verwende 5.4-STABLE und habe mir einige jails aufgebaut. Jetzt möchte ich einen Port auf allen installieren. Das Verzeichnis /usr/ports ist über einen NullFS Mount in den jails eingehängt.
Um das ganze relativ unbeaufsichtigt laufen zu lassen habe ich mir ein kurzes Shellscript geschrieben:
Code:
#!/usr/local/bin/bash
jailstart 1
jailcount 5
...SNIP....
jailname[5]="proxy" # Symbolischer name
jailpath[5]="/jail/eigen/proxy" # absoluter pfad
jailhostname[5]="host.name.domain.tld" # hostname
jailip[5]="1.2.3.4" # IP Adresse
jailexec[5]="/bin/sh /etc/rc" # Startbefehl
jailactive[5]="yes" # Soll der Port installiert werden?
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]} ist nicht aktiv: Skipped!"
fi
echo "Abgeschlossen: /usr/ports/$1 make clean install in ${jailpath[$i]}"
done
Das Script rufe ich beispielsweise mit "./portverteiler net/nss_ldap" oder, um die bash zu installieren, mit "./portverteiler shells/bash" auf.
Leider klappt das nicht so wie ich mir das vorstelle. Der make Prozess läuft eine Weile, baut den Port aus den Quellen, so wie ich das will, dann meldet er mir das der Port bereits installiert ist. Auf der jail wo das installiert ist ist das jedoch definitv nicht der Fall. Auch auf dem Hostsystem nicht.
Wo ist hier mein Denkfehler? Oder gibt es eine andere Methode scriptgesteuert einen Port zu installieren? Wenn möglich aus den Quellen, nicht über pkg_add. Mach es Sinn das mit jexec zu probieren?
Gruß, Echelon