Почти каждая система Linux имеет как 32-битную, так и 64-битную архитектуру. Но проблема в том, что по умолчанию приложение, написанное для работы на 32-битной системе, не будет работать на 64-битной системе и наоборот. Это может быть очень неприятно, поскольку никто не хочет разрабатывать два исходных кода для одного и того же приложения или поддерживать два отдельных бинарных файла для разных архитектур. Вы можете решить эту проблему, сделав так, чтобы 32-битная программа могла работать на 64-битной архитектуре. В этой статье мы узнаем, как запустить 32-битное приложение на 64-битном Linux.
Как запустить 32-битное приложение на 64-битном Linux
Ниже описаны шаги для запуска 32-битных приложений в 64-битной системе Linux. Чтобы иметь возможность запускать 32-битные программы на 64-битной системе Linux, такой как Ubuntu, необходимо добавить архитектуру i386 и установить 3 библиотечных пакета libc6:i386, libncurses5:i386 и libstdc++6:i386.
1. Добавьте архитектуру i386
Откройте терминал и выполните следующую команду.
1 | sudo dpkg --add-architecture i386 |
2. Установите необходимые библиотеки пакетов
Затем выполните следующую команду для установки 3 библиотек пакета.
1 2 | sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 |
Если вышеуказанная команда не сработала, выполните следующую команду.
1 | sudo apt-get install multiarch-support |
3. Выполните 32-битную программу
Теперь вы должны иметь возможность запустить 32-битную программу на 64-битной системе. Замените приведенное ниже sample32bitprogram на имя файла бинарного файла вашей программы.
1 | ./sample32bitprogram |
4. Устранение неполадок
Если вы используете несовместимую версию gcc на вашей системе Ubuntu, вы можете получить ошибку при выполнении вышеуказанных команд, вам может потребоваться обновить gcc с помощью следующей команды.
1 | sudo apt-get install gcc-multilib |
Заключение
В этой статье мы узнали, как запускать 32-битные программы на 64-битных, не создавая отдельные бинарные файлы как для 32-битных, так и для 64-битных систем.