Я пытаюсь запустить скрипт, который виден ls
но когда я пытаюсь запустить его, он говорит "Нет такого файла или каталога" Что дает?
root@rx-texas:/home/7days/linux32#
root@rx-texas:/home/7days/linux32# ls
libstdc++.so.6 steamcmd
root@rx-texas:/home/7days/linux32# ./steamcmd
-bash: ./steamcmd: No such file or directory
root@rx-texas:/home/7days/linux32# less steamcmd
"steamcmd" may be a binary file. See it anyway?
Я использую 64-битный Debian, но это файл linux32, это может быть связано?
Также вот вывод ls -la
:
drwxrwxrwx 2 7days 7days 4096 Apr 22 2013 .
drwxrwxrwx 3 7days 7days 4096 Jan 9 22:44 ..
-rwxrwxrwx 1 7days 7days 3807525 Apr 22 2013 libstdc++.so.6
-rwxrwxrwx 1 7days 7days 5642610 Feb 5 2013 steamcmd
выход ldd steamcmd
:
not a dynamic executable
Я использую 64-битный Debian, но это файл linux32, это может быть связано?
Это не только связано, но и является прямой причиной ошибки.
Когда вы пытаетесь запустить 32-разрядный исполняемый файл в 64-разрядной системе без поддержки 32-разрядной среды выполнения, отображается эта вводящая в заблуждение ошибка. Это не ./steamcmd
что отсутствует, кроме своего загрузчика.
Подробное объяснение см. В ответе под Получение сообщения «Не найдено» при запуске 32-битного двоичного файла в 64-битной системе на Unix.SE.
Предлагаемое решение для Debian - установить поддержку нескольких архитектур с помощью:
dpkg --add-architecture i386 && apt-get update
Проверьте первую строку скрипта. Если вы используете "#!" чтобы ссылаться на исполняемый файл (например, оболочку), убедитесь, что указанный файл: присутствует и доступен для идентификатора пользователя, пытающегося запустить steamcmd.
Например. если у вас есть:
"#! / bin / bash"
В первой строке должен присутствовать / bin / bash. Похоже, вы root, так что с доступом не должно быть проблем. Убедитесь, что у вас нет лишних пробелов в пути к файлу или непечатаемых символов в конце строки.