archexec - IRIX5 und IRIX6 Binaries

Der Text bezieht sich auf die Installation im ChemNet.

Die bisher unterschiedlichen /usr/local Verzeichnisse für IRIX-5 und IRIX-6 im CHEMnet, die zum Teil zu Inkonsistenzen bei Software-Installationen geführt haben, wurden mittlerweile aufgelöst. Inzwischen ist bragg auch der Master für IRIX-6-Rechner. Binaries, die auf spezielle OS-abhängige Dinge, wie z.B. Kernelvariablen, zurückgreifen, funktionieren aber nicht unter beiden Betriebssytemen. Außerdem gibt es Software, wo sich die Anpassung an IRIX-6/R8000 lohnt (z.B. gzip - zur Zeit noch nicht realisiert), da manche dann um Größenordnungen schneller laufen.

Um dieses Problem zu lösen, habe ich jetzt ein kleines Shellscript namens /usr/local/bin/archexec geschrieben, welches die IRIX-Version ermittelt und dann das entsprechende Binary unter /usr/local/bin/IRIX-#/ startet, wobei # zur Zeit 5 oder 6 sein kann. Der Befehl muß durch einen Link auf archexec in /usr/local/bin angelegt werden.

Die Installation einer solchen Software sieht dann wie folgt aus:

/usr/local/bin/beispiel  --- symlink --->  /usr/local/bin/archexec
/usr/local/bin/IRIX-5/beispiel          IRIX-5 Binary
/usr/local/bin/IRIX-6/beispiel          IRIX-6 Binary

Zur Information habe ich den Source von 'archexec' angehängt. Verbesserungsvorschläge sind willkommen. Die Abhängigkeit von Prozessortypen oder der Release-Nummer von IRIX (statt nur der Versionsnummer) ist absichtlich nicht enthalten. Es ist möglich, das Konzept später zu erweitern, falls dieses nötig sein sollte, allerdings möchte ich dafür eigentlich erst die genauen Daten von IRIX 6.2 abwarten.

Beispiel für ein mit archexec installiertes Programm: lsof

#!/sbin/sh
#
# (C) Heiko Schlichting
#
# archexec startet betriebssystemabhaengige Programme im CHEMnet
#
OS=${ARCHITECTURE:-"IRIX-`/sbin/uname -r|/usr/bin/cut -c1`"}
BINDIR=/usr/local/bin/$OS
PROG=`/sbin/basename $0`
if [ -x $BINDIR/$PROG ] ; then
        exec $BINDIR/$PROG $@
else
        echo "archexec: no architecture depending binary of $PROG for $OS."
fi


Heiko Schlichting, 1996/01/12 (Formatierung 1996/07/18 BKi)