Hallo, das Programm "blue" (Umgebung zum Komponieren mit Csound) wird mit einem bash-Skript installiert:
For Linux and Windows users, download the ZIP file and unzip it. Inside of the bin folder you will see a "blue" script for Linux or a "blue.exe" file for use on Windows. http://blue.kunstmusik.com/manual/html/installingBlue.html
Dieses habe ich ausführbar gemacht, doch im Terminal erscheint folgendes:
user@user:~/blue/bin$ ./blue Cannot find java. Please use the --jdkhome switch.
Wie kann ich das Skript so anpassen, damit Java gefunden wird und "blue" fehlerfrei installiert werden kann?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | #!/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 "$PRG"` 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 } absolutize_paths() { while read path; do if [ -d "$path" ]; then (cd "$path" 2>/dev/null && pwd) else echo "$path" fi done } clusters=`(cat "$progdir/../etc/$APPNAME".clusters; echo) | readClusters | absolutize_paths | tr '\012' ':'` if [ ! -z "$extra_clusters" ] ; then clusters="$clusters:$extra_clusters" 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='"$APPNAME"' \ -J-Xdock:name='"$APPNAME"' \ '"-J-Xdock:icon=$progdir/../../$APPNAME.icns"' \ --clusters '"$clusters"' \ --userdir '"${userdir}"' \ ${default_options} -J-Djava.library.path=/usr/lib/jni \ "$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"' \ --clusters '"$clusters"' \ --userdir '"${userdir}"' \ ${default_options} -J-Djava.library.path=/usr/lib/jni \ "$args" exit 1 ;; esac |
Viele Grüße
vubu1