SymLink startet falsches Programm

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
cledith
Beiträge: 147
Registriert: 07.10.2006 13:38:44

SymLink startet falsches Programm

Beitrag von cledith » 15.08.2008 18:36:51

Moin,
ich würde gerne eine Java Anwendung (Thinking Rock) verlinken, dass /usr/local/bin/tr/bin/tr im PATH liegt, also tippe ich

ln -s /usr/local/bin/tr/bin/tr /usr/bin/gtc

Wenn ich aber nun gtc in der Konsole aufrufe, dann versucht NetBeans zu starten. Kann mir einer sagen, woran das liegt? Wenn ich tr mittels /usr/local/.../tr aufrufe, dann startet tr einwandfrei.

Benutzeravatar
Six
Beiträge: 8071
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Re: SymLink startet falsches Programm

Beitrag von Six » 16.08.2008 12:07:24

Vermutl. liegt unter dem selben Namen eine Datei in einem früheren Pfad. Mit

Code: Alles auswählen

echo $PATH
oder 
env | grep PATH
kannst du dir im Terminal deine Pfadeinstellungen angucken. Suche dann mit find, wo denn gtc schonmal vorkommt.

Ach ja, handelt es sich bei tr um eine .jar Datei?
Be seeing you!

cledith
Beiträge: 147
Registriert: 07.10.2006 13:38:44

Re: SymLink startet falsches Programm

Beitrag von cledith » 19.08.2008 16:04:00

Hi,
die Ausgabe von $PATH sagt:
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: Datei oder Verzeichnis nicht gefunden
Danach habe ich nach gtc gesucht und als einziges Ergebnis wurde
/usr/bin/gtc
gefunden. ls -l /usr/bin/gtc:
/usr/bin/gtc -> /usr/local/bin/tr-2.0.1/bin/tr
Die zu verlinkende Datei ist keine JAR Datei sondern ein Shell Skript. Ich poste mal den Inhalt:

Code: Alles auswählen

#!/bin/sh

#
# resolve symlinks
#

PRG=$0

while [ -h "$PRG" ]; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '^.*-> \(.*\)$' 2>/dev/null`
    if expr "$link" : '^/' 2> /dev/null >/dev/null; then
	PRG="$link"
    else
	PRG="`dirname "$PRG"`/$link"
    fi
done

progdir=`dirname "$PRG"`
APPNAME=`basename "$0"`

if [ -f "$progdir/../etc/$APPNAME".conf ] ; then
    . "$progdir/../etc/$APPNAME".conf
fi

# XXX does not correctly deal with spaces in non-userdir params
args=""

case "`uname`" in
    Darwin*)
        userdir="${default_mac_userdir}"
        ;;
    *)
        userdir="${default_userdir}"
        ;;
esac
while [ $# -gt 0 ] ; do
    case "$1" in
        --userdir) shift; if [ $# -gt 0 ] ; then userdir="$1"; fi
            ;;
        *) args="$args \"$1\""
            ;;
    esac
    shift
done

if [ -f "${userdir}/etc/$APPNAME".conf ] ; then
    . "${userdir}/etc/$APPNAME".conf
fi

if [ -n "$jdkhome" -a \! -d "$jdkhome" -a -d "$progdir/../$jdkhome" ]; then
    # #74333: permit jdkhome to be defined as relative to app dir
    jdkhome="$progdir/../$jdkhome"
fi

readClusters() {
  if [ -x /usr/ucb/echo ]; then
    echo=/usr/ucb/echo
  else
    echo=echo
  fi
  while read X; do
    if [ "$X" \!= "" ]; then
      $echo "$progdir/../$X"
    fi
  done
}

clusters=`(cat "$progdir/../etc/$APPNAME".clusters; echo) | readClusters | tr '\012' ':'`

if [ ! -z "$extraclusters" ] ; then
    clusters="$clusters:$extraclusters"
fi

nbexec=`echo "$progdir"/../platform*/lib/nbexec`

case "`uname`" in
    Darwin*)
        eval exec sh '"$nbexec"' \
            --jdkhome '"$jdkhome"' \
            -J-Dcom.apple.mrj.application.apple.menu.about.name='ThinkingRock' \
            -J-Xdock:name='ThinkingRock' \
            '"-J-Xdock:icon=$progdir/../../$APPNAME.icns"' \
            --branding '"$APPNAME"' \
            --clusters '"$clusters"' \
            --userdir '"${userdir}"' \
            ${default_options} \
            "$args"
        ;;
    *)  
       sh=sh
       # #73162: Ubuntu uses the ancient Bourne shell, which does not implement trap well.
       if [ -x /bin/bash ]
       then
           sh=/bin/bash
       fi
       eval exec $sh '"$nbexec"' \
            --jdkhome '"$jdkhome"' \
            --branding '"$APPNAME"' \
            --clusters '"$clusters"' \
            --userdir '"${userdir}"' \
            ${default_options} \
            "$args"
       exit 1
        ;;
esac

Antworten