SuSE Support-Datenbank

Titel: Mathematica: Installationsscript beendet sich

---

Übersicht ---- Stichwortsuche ---- History ---- Versionen ---- Kategorien ---- Alle Artikel
English
---

Mathematica: Installationsscript beendet sich

Bezieht sich auf

SuSE Linux: Version 4.2
Mathematica

Mathematica: Installationsscript math.install beendet sich ohne zu installieren

Symptom:

math.install beendet sich ohne zu installieren

Ursache:

In dem Script math.install ist eine Zeile vorhanden:
mydir=`expr $0'/' : '\(/\)[^/]*//*$' \| $0'/' : '\(.*[^/]\)//*[^/][^/]*//*$' \| .`
In dieser Zeile wird versucht, das Verzeichnis aus dem das Script liegt, zu ermitteln.

Es ist ein Fehler im expr-Programm bzw. in der verwendeten Regex-Funktionen aus der libc.so.5.2.18. In Zukunft werden wir expr mit anderen Regex-Funktionen linken.

Lösung:

Ändern Sie in math.install obige Zeile in:
mydir=/usr/local/math/Install
bzw. wo Sie Mathematica installiert haben. In S.u.S.E. Linux 4.3 wird das Problem nicht mehr auftreten, Sie können auch das Paket updaten, siehe ftp://ftp.suse.de/pub, ob es schon ein neues Paket für exprgibt (Paket shutils).

X-Frontend (xfe.install)

Hier tritt dasselbe Problem aus, ändern Sie im Script xfe.install die entsprechende Zeile analog.

Für Hacker:

Mit dem folgenen Script können Sie das Problem verifizieren.
	#!/bin/sh
	#--------------------------- Testscript z.B. /home/alex/kfr/tmp/braune ------
	echo "\$0:$0"
	echo dirname:`dirname $0`
	
	#myd=`expr $0'/' : '\(/\)[^/]*//*$' \| $0'/' : '\(.*[^/]\)//*[^/][^/]*//*$' \| .`

	myd=`expr $0'/' : '[^/]*//*$' \| 'NO'`
	echo "myd:$myd"
	
	myd=`expr $0'/' : '\(/\)[^/]*/*$' \| 'NO'`
	echo "myd:$myd"
	
	myd=`expr $0'/' : '\(.*[^/]\)//*[^/][^/]*//*$' \| 'NO'`
	echo "myd:$myd"
Falsch ist:
+/tmp $ expr --version
	expr - GNU sh-utils 1.12
	+/tmp $ `pwd`/braune 
	$0:/home/alex/kfr/tmp/braune
	dirname:/home/alex/kfr/tmp
	myd:NO
	myd:NO
	myd:/home/alex/kfr/tmp
	+/tmp $ ./braune 
	$0:./braune
	dirname:.
	myd:NO
	myd:/
	myd:.
	+/tmp $ 
Richtig ist:
	+/tmp $ expr --version
	expr - GNU sh-utils 1.12
	+/tmp $ `pwd`/braune 
	$0:/home/alex/kfr/tmp/braune
	dirname:/home/alex/kfr/tmp
	myd:NO
	myd:NO
	myd:/home/alex/kfr/tmp
	+/tmp $ ./braune 
	$0:./braune
	dirname:.
	myd:NO
	myd:NO
	myd:.
	+/tmp $ 
Entscheidend ist, warum bei "./braune" beim 2. Ausdruck ein "/" geliefert wird, was es nicht soll.

Wie man sieht, funktioniert "dirname" immer richtig. Aus Kompatibilitätsgründen, kann man das aber leider nicht immer verwenden.

Credits:

Die Lösung konnte mit freundlicher Hilfe von Martin Braune und Holger Perlt gefunden werden.

---

Siehe auch:

---

Stichwörter: MATHEMATICA, LIBC, EXPR, MATH.INSTALL, XFE.INSTALL

---

Kategorien: Kommerzielle Applikationen

---

Übersicht ---- Stichwortsuche ---- History ---- Versionen ---- Kategorien ---- Alle Artikel
English
---

SDB-mathematica, Copyright SuSE GmbH, Nuremberg, Germany - Version:
Impressum - Zuletzt generiert: 24. Feb 1999 12:39:15 by maddin with sdb_gen 1.00.0