Eine .sh-Datei kann nicht installiert werden.

Eine .sh-Datei kann nicht installiert werden.

Ich versuche, ein Paket namens mgl-tools zu verwenden, und wenn ich ./install.sh ausführe, funktioniert es nicht. Vor ein paar Tagen hat es noch funktioniert.

Der Fehler:

./install.sh 
Installing MGLTools to /home/aka/Desktop/Expt 10/mgltools_x86_64Linux2_1.5.7
Installing Python Interpreter to 
tar (child): /home/aka/Desktop/Expt: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
Error in Python installation

Der Inhalt der .sh-Datei:

#!/bin/sh

# MGL Tools installation script
pythonargs=" "
pyoptimize=0
TarDir=`pwd`
export MGL_ROOT=""

# Parse the command-line arguments
opts=`getopt "hlc:d:" "$@"`
if [ "$?" != 0 ]
then
   echo "Usage: source install.sh [-d InstDir] [-c optimization]"
   exit
fi
set -- $opts
while :
do
    case "$1" in 

    -c) shift; pythonargs="$pythonargs -c"; pyoptimize="$1";;
    -d) shift; export MGL_ROOT="$1";;
    -l) pythonargs="$pythonargs -l";;
     
    -h) echo "Optional parameters:"
    echo "[-h]  help message;"
    echo "[ -d  InstDir] specifies installation directory (default-current directory)"
    echo "[ -c optimization] compile Python code with or without optimization:"
    echo "    0 - no optimization (generates .pyc files)"
    echo "    1 - with optimization (generates .pyo files);"
    exit ;;
    --) break;;
    esac
    shift
done

if [ "$MGL_ROOT" != "" ]; then
    # check if the user has write access to the installation directory
    if [ -e "$MGL_ROOT" ]; then
    if [ -d "$MGL_ROOT" ]; then
        if [ ! -w  "$MGL_ROOT" ]; then 
        echo "Can not complete installation - specified directory $MGL_ROOT does not have write access."
        exit 1

        fi
    else 
        echo "$MGL_ROOT" is not a directory
        exit 1
    fi
    else 
    echo Creating directory "$MGL_ROOT"
    mkdir "$MGL_ROOT"
    fi

else
    export MGL_ROOT="$(pwd)"
fi

echo "Installing MGLTools to $MGL_ROOT"

cd "$MGL_ROOT"
echo "Installing Python Interpreter to $MLG_ROOT"
tar xzvf $TarDir/Python*.tar.gz

if [ "$?" != 0 ]; then
    echo "Error in Python installation"
    exit 1
fi
echo Python installed, please wait for the rest of MGLTools to be installed 

cd $TarDir

## plaform we run on

export MGL_ARCHOSV=`$TarDir/Tools/archosv`

## add the path to the directory holding the python interpreter to your path

export PATH="$MGL_ROOT/bin:"$PATH

## use Python interpreter locally installed

PYTHON="$MGL_ROOT/bin/python"
export PYTHONHOME="$MGL_ROOT"
if [ "`uname -s`" = "Linux" ] ; then
    export LD_LIBRARY_PATH="$MGL_ROOT/lib"
fi

## run python script - install.py - to install MGL packages and create pmv , adt, and vision scripts

if [ "$pyoptimize" -eq 1 ]; then
    echo "Running $PYTHON -O Tools/install.py $pythonargs"
    $PYTHON -O Tools/install.py $pythonargs
else
    echo "Running $PYTHON Tools/install.py $pythonargs"
    $PYTHON Tools/install.py  $pythonargs
fi

unset PYTHONHOME

Antwort1

Shell-Skripte mögen keine Leerzeichen in Namen. Bitte versuchen Sie, Ihr Verzeichnis umzubenennenEXPT 10in einen Namen ohne Leerzeichen, zum BeispielEXPT10und versuchen Sie es dann erneut.

BEARBEITEN: Wie @cocomac richtig anmerkt, können und sollten richtig geschriebene Skripte Leerzeichen in Namen berücksichtigen. Wenn dies bei Ihnen nicht der Fall ist, ist das Umbenennen der Datei die zweckmäßige Lösung. Das Umschreiben des Skripts und das Einreichen eines Problems beim Herausgeber ist eine weitere Lösung.

verwandte Informationen