Недопустимая инструкция

Автор valera-kecs, 07 декабря 2013, 14:24:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

valera-kecs

Пытаюсь запустить steamCMD на 32-битной системе для сервера.
Выдает ошибку
./steamcmd.sh: line 30:  2449 Недопустимая инструкция                     $DEBUG                             GER "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"

Пытался искать в интернете, но ,кажется, что это ошибка только у меня.
Пытался запускать на ubuntu самой свежей сборки.
Версия: Debian GNU/Linux 7

В чём может быть проблема?


ogost

а вы посмотрите тот файл, 30-ая строчка, что там написано.

valera-kecs

26   $DEBUGGER -x "$ARGSFILE" "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"
27         rm "$ARGSFILE"
28  else
29           $DEBUGGER "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"
30 fi

ogost

я вот тут скачал и у меня без проблем установилось.
скрипт я просмотрел, вроде бы тот же самый. запускал от пользователя без агрументов. установилось там же.
кроме всего прочего у меня установлены всякие библиотеки для сборки из исходников, проприетарные дрова для видюхи. хотя я не уверен, в скрипте поиска всяких зависимостей нету.

sandaksatru

#4
Цитата: valera-kecs от 08 декабря 2013, 20:11:58$DEBUGGER "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"
Проверяйте значения всех переменных, в последней версии стима куча багов... У меня запустился после дня шаманства, полной переписки стартового скрипта, и кучи костылей...
[ot]
ogost, ыыы))). А вам сотый за шестьсот шестьдесят шестой  ;D[/ot]

valera-kecs

#5
Скачал, закинул, дал права на запуск, всё равно ошибка. Ну не может же быть баг в steamcmd.sh ...

Сообщение объединено: 09 декабря 2013, 10:38:09

Из-за каких драйверов может быть такая ошибка?

qupl

valera-kecs, какие тут драйвера? Смотрите в скрипте откуда берутся значения переменных и чему они на самом деле равны.

valera-kecs

Цитата: qupl от 09 декабря 2013, 10:48:56
valera-kecs, какие тут драйвера? Смотрите в скрипте откуда берутся значения переменных и чему они на самом деле равны.

#!/bin/bash

STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
STEAMEXE=`basename "$0" .sh`

PLATFORM=linux32 # dedicated server build (minimal dependencies)

# prepend our lib path to LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$STEAMROOT/$PLATFORM:$LD_LIBRARY_PATH"

ulimit -n 2048

MAGIC_RESTART_EXITCODE=42

# and launch steam
if [ "$DEBUGGER" == "gdb" ] || [ "$DEBUGGER" == "cgdb" ]; then
ARGSFILE=$(mktemp $USER.steam.gdb.XXXX)

# Set the LD_PRELOAD varname in the debugger, and unset the global version.
if [ "$LD_PRELOAD" ]; then
echo set env LD_PRELOAD=$LD_PRELOAD >> "$ARGSFILE"
echo show env LD_PRELOAD >> "$ARGSFILE"
unset LD_PRELOAD
fi

$DEBUGGER -x "$ARGSFILE" "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"
rm "$ARGSFILE"
else
$DEBUGGER "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"
fi
STATUS=$?

if [ $STATUS -eq $MAGIC_RESTART_EXITCODE ]; then
    exec "$0" "$@"
fi
exit $STATUS

qupl

Добавьте такую строчку перед 30-ой, и в выводе должно быть видно, что именно вызывается.
echo "$DEBUGGER  $STEAMROOT/$PLATFORM/$STEAMEXE $@"

upd: немного поправил

valera-kecs

Цитата: qupl от 09 декабря 2013, 16:02:48
Добавьте такую строчку перед 30-ой, и в выводе должно быть видно, что именно вызывается.
echo "$DEBUGGER  $STEAMROOT/$PLATFORM/$STEAMEXE $@"

upd: немного поправил

Вывел  /SteamCMD/linux32/steamcmd

qupl

Цитата: valera-kecs от 09 декабря 2013, 16:15:10Вывел  /SteamCMD/linux32/steamcmd
У Вас такой файл существует?

valera-kecs

Цитата: qupl от 09 декабря 2013, 20:30:47
Цитата: valera-kecs от 09 декабря 2013, 16:15:10Вывел  /SteamCMD/linux32/steamcmd
У Вас такой файл существует?
Существует, пытался открыть при разных кодировках, в notepadd ++ символы вида "Null"

ogost

Цитата: valera-kecs от 09 декабря 2013, 16:15:10Вывел  /SteamCMD/linux32/steamcmd
он от корня у вас ищет этот файл. по идее должен быть в текущей директории, чтото вроде ./SteamCMD/linux32/steamcmd (с точкой спереди)

valera-kecs

И правильно что из корня, обращение верное. В корне созданная мной папка SteamCMD, здесь нет ошибок

sandaksatru

Цитата: valera-kecs от 10 декабря 2013, 19:27:45
здесь нет ошибок

valera-kecs, у вас вызывается переменная $DEBUGGER с двумя параметрами: "$STEAMROOT/$PLATFORM/$STEAMEXE" и "$@". Что в себе заключает "$STEAMROOT/$PLATFORM/$STEAMEXE" - мы установили, а вот что в других переменных - неизвестно, в вашем выводе их объявлений я не нашёл.