Я пытаюсь запустить приложение на 32 бита на сервере на 64 бита. Вот шаги, которые я выполнил, чтобы заставить это работать:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
И даже после этого я получаю следующее:
./steamcmd.sh: line 29: /home/steam/steamcmd/linux32/steamcmd: cannot execute binary file: Exec format error
Некоторая информация:
uname -i
дайте мне:
x86_64
И файл linux32/steamcmd дает мне:
linux32/steamcmd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.34, BuildID[sha1]=17188c02dec11be2af104afd625f39a2c89b54c7, not stripped
Вы пропускаете загрузчик на 32 бита, который заставляет ldd ложно требовать "не динамический исполняемый файл", вместо корректной "неправильной архитектуры" ошибка. 32 бита ld находятся в пакете libc6-i386. Я зарегистрирую ошибку на отчете о ldd, никогда не находил время для файла это.