Problem med en .sh fil

Få hjælp til at sætte programmer eller funktioner op.
Anders Bredahl
Indlæg: 45
Tilmeldt: 16. okt 2008, 14:03

Problem med en .sh fil

Indlæg af Anders Bredahl »

Jeg har købt et program der hedder Mathematica og som jeg har brugt før på Ubuntu 11.04
Nu har jeg så opdateret til Ubuntu 12.04 og vil gerne installere mit program igen, men det virker desværre ikke, jeg får en 'kritisk fejl' og så stopper installationen.

I terminalen skriver jeg: sudo sh fil-navn.sh
og så går installationen igang kun for at stoppe kort efter med følgende fejlmeddelelse:
CRITICAL FAILURE: PrintIntroduction() Error
$ProductTitle not defined.

Og så har den oprettet en log hvor der står følgende:

(Jeg har klippet lidt af loggen ud da der ellers var for mange tegn, og jeg måtte ikke vedhæfte selve filen...)
http://paste.ubuntu.com/973707/

Er der nogen der kan fortælle mig hvad der går galt?...


EDIT af christian.arvai : Jeg har taget mig den frihed at lægge loggen på pastebin, da indlægget ellers blev meeeeeget langt :D
AJenbo
Admin
Indlæg: 20884
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Problem med en .sh fil

Indlæg af AJenbo »

Puha sikker noget, er det muligt at du kan vise selve scriptet i .sh filens?
Når det er software du har betalt for burde du også kunne kontakte support der hvor du har købt det.
Anders Bredahl
Indlæg: 45
Tilmeldt: 16. okt 2008, 14:03

Re: Problem med en .sh fil

Indlæg af Anders Bredahl »

Hvordan viser/ser jeg selve scriptet?
AJenbo
Admin
Indlæg: 20884
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Problem med en .sh fil

Indlæg af AJenbo »

Åben filen i tekstredigering. En .sh fil er normal bare et text script, der findes dog eksempler hvor den også inkludere en binær zip fil hvilet kan gøre filen MEGET stor og svær vis ikke umulig at åbne i tekstredigering. Hvis det er tilfældet skal du åbne en terminal, navigere til mappe hvor filen ligger og skrive:

Kode: Vælg alt

less NAVN-PÅ-FIL


Så skulle du gerne få vist scriptet, et tryk på mellem rum springer en side ned, kopier teksten ind til der kommer en masse mærkelige tegn.
Anders Bredahl
Indlæg: 45
Tilmeldt: 16. okt 2008, 14:03

Re: Problem med en .sh fil

Indlæg af Anders Bredahl »

Det giver følgende:

Kode: Vælg alt

#!/bin/sh
# This script was generated using Makeself 2.1.1
CRCsum="3638357472"
MD5="1696693e0076a258a7ed925847feecd3"
TMPROOT=${TMPDIR:=/tmp}

# DEC-AXP cksum/md5sum handling - we need to set compatibility flags
uname=`uname`
if [ $uname = "OSF1" ]; then
    CMD_ENV=xpg4
    export CMD_ENV
fi

label="Mathematica Secured 8.0.4 for LINUX Installer Archive"
script="Unix/Installer/MathInstaller"
scriptargs=""
targetdir=".16032"
filesizes="1342986240"
keep=n
temp=n


if test "$temp" = n; then
        targetdir=.$$
fi

print_cmd_arg=""
if type printf > /dev/null; then
    print_cmd="printf"
elif test -x /usr/ucb/echo; then
    print_cmd="/usr/ucb/echo"
else
    print_cmd="echo"
fi

MS_Printf()
{
    $print_cmd $print_cmd_arg "$1"
}

MS_Progress()
{
    while read a; do
                MS_Printf .

    done
}

MS_dd()
{
    blocks=`expr $3 / 1024`
    bytes=`expr $3 % 1024`
    dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \
    { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \
      test $bytes  -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null
}

MS_Help()
{
    cat << EOH >&2
Makeself version 2.1.1
 1) Getting help or info about $0 :
  $0 --help   Print this message
  $0 --info   Print embedded info : title, default target directory, embedded script ...
  $0 --lsm    Print embedded lsm entry (or no LSM)
  $0 --list   Print the list of files in the archive
  $0 --check  Checks integrity of the archive
 
 2) Running $0 :
  $0 [options] [--] [additional arguments to embedded script]
  with following options (in that order)
  --confirm             Ask before running embedded script
  --keep                Do not erase target directory after running
                        the embedded script
  --nox11               Do not spawn an xterm
  --nochown             Do not give the extracted files to the current user
  --target NewDirectory Extract in NewDirectory
  --                    Following arguments will be passed to the embedded script
EOH
}

MS_Check()
{
    OLD_PATH=$PATH
    PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"}

    MD5_PATH=`which md5sum 2>/dev/null || type md5sum 2>/dev/null`
    MD5_PATH=${MD5_PATH:-`which md5 2>/dev/null || type md5 2>/dev/null`}
    PATH=$OLD_PATH
    MS_Printf "Verifying archive integrity. \n"
    offset=`head -n 387 "$1" | wc -c | tr -d " "`
    verbose=$2
    i=1
    for s in $filesizes
    do
        crc=`echo $CRCsum | cut -d" " -f$i`
        if test -x "$MD5_PATH"; then
            md5=`echo $MD5 | cut -d" " -f$i`
            if test $md5 = "00000000000000000000000000000000"; then
                test x$verbose = xy && echo " $1 does not contain an embedded MD5 checksum." >&2
            else
                md5sum=`MS_dd "$1" $offset $s | "$MD5_PATH" | cut -b-32`;
                if test "$md5sum" != "$md5"; then
                    echo "Error in MD5 checksums: $md5sum is different from $md5" >&2
                    cd "$location"; /bin/rm -rf "$tmpdir"
                    exit 2
                else
                    test x$verbose = xy && MS_Printf " MD5 checksums are OK." >&2
                fi
                crc="0000000000"; verbose=n
            fi
        fi
        if test $crc = "0000000000"; then
            test x$verbose = xy && echo " $1 does not contain a CRC checksum." >&2
        else
            sum1=`MS_dd "$1" $offset $s | cksum | awk '{print $1}'`
            if test "$sum1" = "$crc"; then
                test x$verbose = xy && MS_Printf " CRC checksums are OK." >&2
            else
                echo "Error in checksums: $sum1 is different from $crc"
                cd "$location"; /bin/rm -rf "$tmpdir"
                exit 2;
            fi
        fi
        i=`expr $i + 1`
        offset=`expr $offset + $s`

    done
}

UnTAR()
{
    tar $1vf - 2>&1 || { echo; echo "Extraction failed. No space left on $targetdir" > /dev/tty; kill -15 $$; }
}

finish=true
xterm_loop=
nox11=n
copy=none
ownership=

while true
do
    case "$1" in
    -h | --help)
        MS_Help
        exit 0
        ;;
    --info)
        echo Identification: "$label"
        echo Target directory: "$targetdir"
        echo Uncompressed size: 1313652 KB
        echo Compression: none
        echo Date of packaging: Tue Oct 11 06:40:43 CDT 2011
        echo Built with Makeself version 2.1.1 on linux-gnu
        if test x$script != x; then
            echo Script run after extraction:
            echo "    " $script $scriptargs
        fi
        exit 0
        ;;
    --dumpconf)
        echo LABEL=\"$label\"
        echo SCRIPT=\"$script\"
        echo SCRIPTARGS=\"$scriptargs\"
        echo archdirname=\".16032\"
        echo KEEP=n

        echo COMPRESS=none
        echo filesizes=\"$filesizes\"
        echo CRCsum=\"$CRCsum\"
        echo MD5sum=\"$MD5\"
        echo OLDUSIZE=1313652
        echo OLDSKIP=388
        exit 0
        ;;
    --lsm)
cat << EOLSM
No LSM.
EOLSM
        exit 0
        ;;
    --list)
        echo Target directory: $targetdir
        offset=`head -n 387 "$0" | wc -c | tr -d " "`
        for s in $filesizes
        do
            MS_dd "$0" $offset $s | eval "cat" | UnTAR t
            offset=`expr $offset + $s`
        done
        exit 0
        ;;
    --check)
        MS_Check "$0" y
        exit 0
        ;;
    --confirm)
        verbose=y
        shift
        ;;
    --keep)
        keep=y
        shift
        ;;
    --target)
    otherdirectory=y
        targetdir=${2:-.}
        shift 2

        ;;
    --nox11)
        nox11=y
        shift
        ;;
    --nochown)
        ownership=n
        shift
        ;;
    --xwin)
        finish="echo Press Return to close this window...; read junk"
        xterm_loop=1
        shift
        ;;
    --phase2)
        copy=phase2
        shift
        ;;
    --)
        shift
        break ;;
    -*)
        echo Unrecognized flag : "$1" >&2
        MS_Help
        exit 1
        ;;
    *)
        break ;;
    esac
done

case "$copy" in
copy)
    SCRIPT_COPY="$TMPROOT/makeself$$"
    echo "Copying to a temporary location..." >&2
    cp "$0" "$SCRIPT_COPY"
    chmod +x "$SCRIPT_COPY"
    cd "$TMPROOT"
    exec "$SCRIPT_COPY" --phase2

    ;;
phase2)
    finish="$finish ; rm -f $0"
    ;;
esac

if test "$nox11" = "n"; then
    if tty -s; then                 # Do we have a terminal?
        :
    else
        if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then  # No, but do we have X?
            if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable
                GUESS_XTERMS="xterm rxvt dtterm eterm Eterm kvt konsole aterm"
                for a in $GUESS_XTERMS; do
                    if type $a >/dev/null 2>&1; then
                        XTERM=$a
                        break
                    fi
                done
                chmod a+x $0 || echo Please add execution rights on $0
                if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal!
                    exec $XTERM -title "$label" -e "$0" --xwin "$@"
                else
                    exec $XTERM -title "$label" -e "./$0" --xwin "$@"
                fi
            fi
        fi
    fi
fi

location="`pwd`"

if test -x /usr/ucb/whoami; then
    hoo_cmd="/usr/ucb/whoami"
else
    hoo_cmd="whoami"
fi

hoo="`$hoo_cmd`"

if test "$targetdir" = "."; then

    tmpdir="."
else
    if test "$temp" = n; then
        tmpdir="$targetdir"
    else
        tmpdir="$TMPROOT/selfgz$$"
    fi
   
    if test -d "$tmpdir" || test -f "$tmpdir"; then
        echo Cannot create directory "$tmpdir": File exists >&2
        echo Use \'--target dirName\' to specify another location. >&2
        eval $finish
        exit 1
    fi
   
    if test "$otherdirectory" = y; then
        ckdir="`dirname $tmpdir`"
        if test -w "$ckdir"; then
                :
        else
                echo User \'$hoo\' cannot write to directory "$ckdir" >&2
                echo Use \'--target dirName\' to specify another location. >&2
                eval $finish
                exit 1
        fi
    else
        if test -w "$location"; then
                :
        else
                echo User \'$hoo\' cannot write to "$location" >&2
                echo Use \'--target dirName\' to specify another location. >&2
                eval $finish
                exit 1
        fi
    fi
       
    mkdir $tmpdir 2> /dev/null
   
    if test $? = 1; then
        echo Unable to create directory "$tmpdir" in the current directory. >&2

        echo User \'$hoo\' may not have write permissions. >&2
        echo Use \'--target dirName\' to specify another location. >&2
        eval $finish
        exit 1
    fi
   
fi

MS_Printf "$label\n"
#MS_Printf "Copyright (c) 1988-2004 Wolfram Research, Inc.\n"
MS_Printf "\n"

if test x$SETUP_NOCHECK != x1; then
    MS_Check "$0"
fi
offset=`head -n 387 "$0" | wc -c | tr -d " "`

# Save extracted archives?
if test "$keep" = y; then
        echo "$tmpdir will not be removed."
fi

MS_Printf "Extracting installer. "
res=3
if test "$keep" = n; then
    trap 'echo Removing temporary files. >&2; cd "$location"; /bin/rm -rf "$tmpdir"; eval $finish; exit 15' 1 2 3 15
fi

for s in $filesizes
do
    if MS_dd "$0" $offset $s | eval "cat" | ( cd "$tmpdir"; UnTAR x; chmod -R u+w . ) | MS_Progress; then
        if test x"$ownership" != x; then
            (PATH=/usr/xpg4/bin:$PATH; chown -R `id -u` .;  chgrp -R `id -g` .)
        fi
    else
        echo
        echo "Unable to decompress $0" >&2
        eval $finish; exit 1
    fi
    offset=`expr $offset + $s`

done
echo

cd "$tmpdir"
res=0
if test x"$script" != x; then
    if test x"$verbose" = xy; then
        MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] "
        read yn
        if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then
            $script $scriptargs $*; res=$?;
        fi
    else
        $script $scriptargs $*; res=$?
    fi
    if test $res -ne 0; then
        echo "The program returned an error code ($res)" >&2
    fi
fi
if test "$keep" = n; then
    cd "$location"; /bin/rm -rf "$tmpdir"
fi
eval $finish; exit $res
AJenbo
Admin
Indlæg: 20884
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Problem med en .sh fil

Indlæg af AJenbo »

Puha jeg bliver altid lidt svimmel når jeg skal læse Makeself scripts (hvor for er de så populære :().
Det ville hjælpe lidt hvis du kan give mig output fra den her også:

Kode: Vælg alt

ls -l NAVN-PÅ-FIL


P.s. jeg har pakket dit script ind i et Code tag så det ikke tager så meget plads.