Получение ошибки :bash :../program :не удается выполнить двоичный файл :Ошибка формата Exec

Безecho:

string=$'"<VirtualHost *:443> \
       ... \
    </VirtualHost>"'

sudo sed -i '$a\'"${string}"'' file

Опция -iуказывает sedобрабатывать файлы в -месте (с необязательным добавлением суффикса к исходной версии ).

Скрипт sed:

  1. $соответствует последней строке
  2. a\добавить текст после соответствующей строки

Однако он не будет работать с пустым файлом (, так как не будет строк ввода, соответствующих последней строке ).

7
28.10.2020, 11:48
2 ответа

У вас 64 -битный процессор x86 (, указанный флагом lmв /proc/cpuinfo), но вы используете 32 -битное ядро. Программа, которую вы пытаетесь запустить, требует 64-разрядной среды выполнения -, поэтому она не будет работать так, как -.

Если вы можете найти 32 -битную сборку программы (или собрать ее самостоятельно ), используйте ее.

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

Чтобы установить 64-битное -ядро, запустите

sudo dpkg --add-architecture amd64
sudo apt-get update
sudo apt-get install linux-image-generic:amd64

Будет установлено последнее 64 -битное ядро ​​Xenial, а также различные поддерживающие 64 -битные пакеты. После перезагрузки вы должны обнаружить, что uname -aпоказывает x86_64, а не i686. Если вы попытаетесь снова запустить свою программу, она может просто сработать,или вы получите ошибку из-за отсутствия библиотек; в последнем случае установите соответствующие пакеты (используйте apt-file, чтобы найти их ), чтобы программа заработала.

17
18.03.2021, 22:54

У вас 32 -битный ЦП (x86 )и вы пытаетесь запустить 64 -битный исполняемый файл (x86 _64 ). Вы не можете запустить этот исполняемый файл на этом процессоре. Либо найдите 32 -битную сборку, либо сами скомпилируйте исходники.

0
18.03.2021, 22:54

Теги

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