Как я могу разрешить ошибку «невозможно выполнить двоичный файл»?

Когда я использую SSH, все, что я вижу, это …

-bash: /usr/bin/id: cannot execute binary file -bash: [: : integer expression expected 

Я ничего не мог здесь сделать. Команды, такие как halt , poweroff , reboot , возвращают command not found .

Как я могу это исправить? Я использую Debian Squeeze Linux

5 Solutions collect form web for “Как я могу разрешить ошибку «невозможно выполнить двоичный файл»?”

Обычно это сообщение об ошибке означает, что Linux не распознает файл как сценарий оболочки или как исполняемый файл.

Обычно причиной является запуск исполняемого файла в неправильной архитектуре – если вы пытаетесь запустить исполняемые файлы x86 на процессоре ARM, это сообщение появляется.

Возможно ли перезаписать /usr/bin/id ?

Попробуйте запустить его, используя ./executablefilename, вместо использования sh executablefilename. В конце концов, это не сценарий оболочки.

Проблема заключается в том, что выполняется двоичный код для другой архитектуры процессора. Вы можете использовать objdump (из binutils) для проверки архитектуры двоичных файлов. Вы можете использовать uname для проверки архитектуры машины.

Например, я столкнулся с этой ошибкой «не может выполнить двоичный файл» при установке FF.Communicator – плагин firefox для chrome (поэтому я могу запускать страницы, использующие java-апплеты).

  • Objdump показывает, что двоичный код – 64-разрядный elf64-x86-64
  • Uname показывает, что моя машина 32-разрядная i686

    $ ./FF.Communicator bash: ./FF.Communicator: невозможно выполнить двоичный файл $ uname -mpio i686 i686 i386 GNU / Linux $ objdump -a ./FF.Communicator ./FF.Communicator: формат файла elf64-x86-64 ./FF.Communicator

  • Objdump на рабочем двоичном устройстве на моей машине показывает, что это 32-разрядный elf32-i386

    $ Objdump -a / bin / ls / bin / ls: формат файла elf32-i386

Используя эти инструменты, вы можете проверить архитектуры машин и двоичных файлов – не только архитектуры Intel, но и любой процессор.

Я делаю некоторые дикие догадки здесь, но похоже, что происходит следующее:

  1. Вы регистрируетесь через SSH, запуская bash чтобы запустить ваш файл ~/.profile или ~/.bashrc чтобы настроить вашу среду для вас (это нормально).
  2. В какой-то момент он пытается выполнить /bin/id чтобы получить ваш uid, который терпит неудачу, вызвав ошибку целочисленного выражения и завершая скрипт, прежде чем он сможет настроить ваш $PATH .
  3. Поскольку ваш $PATH не установлен, bash может выполнять только команды с указанным полным путем.

Используйте export PATH=/bin:/usr/bin:/sbin:/usr/sbin чтобы исправить проблему $PATH пока вы не сможете исправить основную причину сбоя / bin / id.

Двоичный файл состоит из машинных инструкций, которые может понять процессор. Ваша операционная система не означает, что будет запущен один и тот же исполняемый файл. Перемещение вперед и назад между набором команд процессора, совместимым с ним, обычно будет хорошо работать, если они не совместимы с ЦП, он не сможет понять инструкции.

  • Можно ли добавить шифр для клиента sftp?
  • Могу ли я заставить ssh-agent ждать, пока я не буду использовать ssh для запроса пароля?
  • Имеет ли смысл иметь несколько ключей SSH?
  • SSH от Windows до Linux без ввода пароля
  • Ssh попытки атаки на OS X 10.10 - должен ли я беспокоиться / отвечать?
  • Передача агента SSH с использованием разных имен пользователей и разных ключей
  • SSH Connection отказано
  • Файлы Rsync через промежуточный хост
  • Asus RT-N66U Включить доступ к SSH
  • Можно ли заставить SSH передавать пустые аргументы?
  • Как я могу создать пользователя с доступом только для чтения ко всем файлам? (Т.е. root без разрешения на запись)
  • Почему мой .bashrc читается, когда я запускаю неинтерактивные команды по ssh
  • Interesting Posts

    Объединение нескольких каналов интернет-провайдера через туннели на сервер конечных точек

    Почему компьютер с ОС Windows сразу возвращается после спящего режима / спящего режима?

    Действительно ли Windows 8 отключается?

    Могу ли я настроить веб-сайт на Wi-Fi-маршрутизаторе?

    Не удалось удалить Visual Studio 2008, не удалось открыть ключ «Компоненты»

    Могу ли я заменить жесткий диск SSD на жесткий диск с нормальным диском без аннулирования гарантии?

    Когда вы знаете, что вам нужно больше барана?

    Как отключить * автоматическую перезагрузку в Windows 10?

    Есть ли способ обеспечить, чтобы конкретный USB-ключ всегда получал одну и ту же букву диска?

    Дросселирование полосы пропускания в Firefox

    Общие папки / настройки Mac OS для проверки (при попытке избавиться от отвратительного самозапускающегося приложения)

    Как я могу сделать изображение с белым фоном и сделать его прозрачным

    От «аккумулятора, подключенного, но не заряжающего» до «критического процесса»,

    Клавиши быстрого доступа Win-Key + Arrow больше не работают

    Почему Internet Explorer идентифицирует себя как Mozilla?

    Давайте будем гением компьютера.