Невозможно выполнить двоичный файл

Недавно я услышал о Breach, браузере на основе Node.js. Я следовал инструкциям на http://codeforgeek.com/2014/08/download-install-breach-browser-ubuntu-14-04/, чтобы установить его, но возникла следующая ошибка:

breach-v0.3.22-alpha.6-linux-x64 / __ AUTO_UPDATE_BUNDLE __ / exo_browser / exo_browser: невозможно выполнить двоичный файл: ошибка формата Exec

После некоторого поиска в Google я обнаружил, что это потому, что я пытаюсь установить 64-битный пакет на 32-битную установку Ubuntu. Я попытался найти 32-битный пакет того же самого, но безуспешно. Браузер доступен только в виде 64-битного пакета (насколько мне известно).

Итак, мой вопрос:

Можно ли как-то установить его на 32-битную ОС или, если есть какая-либо программа, которая может запускать 64-битные приложения в 32-битной ОС.

Я искал в Google и не нашел помощи. Может кто-нибудь помочь мне?

Я использую Ubuntu 14.04 (32 бит).

Спасибо


person Jayant    schedule 19.08.2014    source источник


Ответы (2)


Я столкнулся с аналогичной проблемой с файлами C. Я думаю, что это как-то связано с используемым нами компилятором. Моя версия ядра -

3.13.0-40-общий

который вы получите, выполнив команду uname -r в терминале.

У меня был файл кода, который выполняет файловые операции. Когда я использовал GCC с соответствующими флагами и создал объектный файл с именем «fileop» и попытался его запустить, я получил следующую ошибку.
«bash: ./fileop: не удается выполнить двоичный файл: ошибка формата Exec»
Мой исполняемый файл с возможностью связывания был 32-битным, что вы можете увидеть, используя команду
"file fileop"
fileop: ELF 32-битный LSB перемещаемый, Intel 80386, версия 1 (SYSV), без удаления

Но когда я использовал «CC» вместо GCC, он создал выходной файл с именем a.out, и я смог выполнить его без каких-либо проблем.
Операция «file» дала следующие выходные данные
a.out: 32-разрядный исполняемый файл LSB ELF, Intel 80386, версия 1 (SYSV), динамически связанный (использует общие библиотеки), для GNU / Linux 2.6.24, BuildID [sha1] = 13b7ad302580a0c7f5c7931ec2d80155d7915fa9, без удаления

Надеюсь, что приведенное выше Описание проливает больше света на проблему.

person achoora    schedule 28.11.2014

Невозможно (напрямую) запустить 64-битные двоичные файлы в 32-битной системе.

Вы можете попробовать использовать VMWare для запуска 64-битного Linux на 32-битном хосте. Дополнительные сведения см. В этом ответе.

Кроме того, изучив целевую страницу Breach, я обнаружил следующее:

  if(arch === 'ia32') {
    $('#download').html('Available on <span class="fa fa-linux"></span> x64');
    $('#download').attr('href', '#');
    /*
    $('#download').html('<span class="fa fa-linux"></span>&nbsp;&nbsp; Download Breach Alpha v0.3 (ia32)');
    $('#download').attr('href', 'http://bit.ly/1kWWjmF');
    */
  }

Это означает, что они работают над 32-битной поддержкой Linux. Может быть, спросите разработчиков в Twitter / Github о статусе этого?

person kamituel    schedule 19.08.2014