Я пытаюсь установить Anaconda3 в ubuntu14.04 как это:
seyyedhossein@hossein:~$ sh Anaconda3-4.2.0-Linux-x86_64.sh
и я добираюсь:
Anaconda3-4.2.0-Linux-x86_64.sh: 16: Anaconda3-4.2.0-Linux-x86_64.sh: 0: not found
Anaconda3-4.2.0-Linux-x86_64.sh: 61: Anaconda3-4.2.0-Linux-x86_64.sh: 0: not found
Anaconda3-4.2.0-Linux-x86_64.sh: 75: Anaconda3-4.2.0-Linux-x86_64.sh: Syntax error: word unexpected (expecting ")")
какова проблема здесь?
Я установил его на другой учетной записи (который был первоначально загружен с), успешно. но когда я вошел в свой новый аккаунт, это просто выполненная привычка!
Обновление:
Вывод команды кошки:
#!/bin/bash
# Copyright (c) 2012-2016 Continuum Analytics, Inc.
# All rights reserved.
#
# Name: Anaconda3
# Version: 4.2.0
# Packages: 195
# PLAT: linux-64
# DESCR: 4.1.1-889-g7ce9b7f
# BYTES: 478051940
# LINES: 558
# MD5: 1ee1f5cb1d92a230e59cc5fce0dca5ba
unset LD_LIBRARY_PATH
echo "$0" | grep '\.sh$' >/dev/null
if (( $? )); then
echo 'Please run using "bash" or "sh", but not "." or "source"' >&2
return 1
fi
THIS_DIR=$(cd $(dirname $0); pwd)
THIS_FILE=$(basename $0)
THIS_PATH="$THIS_DIR/$THIS_FILE"
PREFIX=$HOME/anaconda3
BATCH=0
FORCE=0
while getopts "bfhp:" x; do
case "$x" in
h)
echo "usage: $0 [options]
Installs Anaconda3 4.2.0
-b run install in batch mode (without manual intervention),
it is expected the license terms are agreed upon
-f no error if install prefix already exists (force)
-h print this help message and exit
-p PREFIX install prefix, defaults to $PREFIX
"
exit 2
;;
b)
BATCH=1
;;
f)
FORCE=1
;;
p)
PREFIX="$OPTARG"
;;
?)
echo "Error: did not recognize option, please try -h"
exit 1
;;
esac
done
# verify the size of the installer
wc -c "$THIS_PATH" | grep 478051940 >/dev/null
if (( $? )); then
echo "ERROR: size of $THIS_FILE should be 478051940 bytes" >&2
exit 1
fi
if [[ $BATCH == 0 ]] # interactive mode
then
if [[ `uname -m` != 'x86_64' ]]; then
echo -n "WARNING:
Your operating system appears not to be 64-bit, but you are trying to
install a 64-bit version of Anaconda3.
Are sure you want to continue the installation? [yes|no]
[no] >>> "
read ans
if [[ ($ans != "yes") && ($ans != "Yes") && ($ans != "YES") &&
($ans != "y") && ($ans != "Y") ]]
Проблема со сценарием: хотя это утверждает в его собственной документации, что может быть выполнено sh
, т.е. любой стандартной оболочкой POSIX, это на самом деле требует bash
.
конструкция (( $? ))
не является допустимым POSIX sh, ни ($ans != "yes")
, когда $ans
пусто. Они едва допустимы в bash
любой (TBH, это - первый раз за 20 лет, я вижу идиому (( $? ))
), но по-видимому bash
позволяет ему передать.
Решение: выполненный удар использования: bash Anaconda3-4.2.0-Linux-x86_64.sh
sh управляют, чтобы Вы дали, предполагает, что .sh файл находится в Вашем корневом каталоге. Это может быть расположено в другом месте, в этом случае необходимо дать ему путь туда, где файл расположен.
Пример: если файл Anaconda3-4.2.0-Linux-x86_64.sh расположен на Вашем Рабочем столе, Вы можете:
cd ~/Desktop
bash Anaconda3-4.2.0-Linux-x86_64.sh
или
bash ~/Desktop/Anaconda3-4.2.0-Linux-x86_64.sh
, Если это не решает Вашу проблему, отредактируйте свой вопрос включать вывод:
cat Anaconda3-4.2.0-Linux-x86_64.sh | head -n 76
Я использовал удар вместо sh, и сценарий работал очень хорошо!
кажется, что sh не был предназначен, чтобы использоваться с этим!