Maya Installation: Нет такой ошибки файла, но файл Exists - архитектура i386 не проблема [дубликат]

Я загрузил игру (Shank), но файл bin не запускается. Ошибка, которая появляется при попытке запуска исполняемого файла:

bash: ./shank-linux-120720110-1-bin: No such file or directory
151
задан 8 May 2012 в 17:56

2 ответа

64-битные системы Ubuntu Multiarch

Выполните этот ответ только в том случае, если на выходе file file-name отображается

file-name: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped

Для запуска 32-битного исполняемого файла в 64-битном многоэкранном режиме Ubuntu, вам нужно добавить архитектуру i386, а также установить libc6:i386, libncurses5:i386, libstdc++6:i386 эти три пакета библиотеки.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
./file-name
38
ответ дан 3 August 2018 в 21:30

Вероятно, вы пытаетесь запустить 32-битный двоичный код в 64-разрядной системе, в которой не установлена ​​32-разрядная поддержка.

Есть три случая, когда вы можете получить сообщение " Нет такого файла или каталога ":

  • Файл не существует. Я предполагаю, что вы проверили, что файл существует (возможно, потому, что оболочка завершает его).
  • Существует файл с этим именем, но это болтающаяся символьная ссылка.
  • файл существует, и вы даже можете его прочитать (например, команда file shank-linux-120720110-1-bin отображает что-то вроде «ELF 32-bit LSB executable ...»), и все же, когда вы пытаетесь выполнить его, вам говорят, что файл не существуют.

Сообщение об ошибке в этом последнем случае, по общему признанию, запутывает. Это говорит о том, что ключевой компонент среды выполнения, необходимый для запуска программы, отсутствует. К сожалению, канал, через который сообщается об ошибке, имеет место только для кода ошибки, а не для этой дополнительной информации, что это действительно среда выполнения, которая виновата. Если вы хотите получить техническую версию этого объяснения, прочитайте Сообщение «Не найдено» при запуске 32-разрядного двоичного файла в 64-битной системе .

Команда file расскажет вам, что это за бинарный файл. За некоторыми исключениями вы можете запускать только двоичный код для архитектуры процессора, для которого предназначен выпуск Ubuntu. Основное исключение состоит в том, что вы можете запускать 32-разрядные (x86, aka IA32) двоичные файлы в 64-разрядных (amd64, aka x86_64) системах.

В Ubuntu до 11.04 для запуска 32-разрядного двоичного кода на 64-битной установке вам необходимо установить пакет ia32-libs . Возможно, вам понадобится установить дополнительные библиотеки (вы получите явное сообщение об ошибке, если вы это сделаете).

Начиная с 11.10 (oneiric), введенного multiarch , вы все равно можете установить ia32-libs, но вы можете выбрать более тонкий подход, достаточно получить libc6-i386 (плюс любая другая необходимая библиотека).

199
ответ дан 6 August 2018 в 23:07

Другие вопросы по тегам:

Похожие вопросы: