SuSE GmbH

SuSE Support-Datenbank

Titel: Mathematica: Installationsscript beendet sich

----------

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

----------

Mathematica: Installationsscript beendet sich

Bezieht sich auf

SuSE Linux: Version 4.2

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 SuSE Linux 4.3 ist das Problem behoben.

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:

----------

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

----------

SDB-mathematica, Copyright SuSE GmbH, Nuremberg, Germany - Version: 30. Jul 1996
SuSE GmbH - Zuletzt generiert: 23. Nov 1999 16:40:31 by snbarth with sdb_gen 1.00.0