Как запускать 32-битные приложения в 64-битной Linux.
Большинство дистрибутивов Linux имеют 64-битные версии для процессоров x86_64, таких как AMD Athlon II или Intel Xeon. Поскольку эти дистрибутивы имеют собственные репозитории пакетов, они обычно предоставляют бинарные пакеты для всех поддерживаемых приложений.
Если вас полностью устраивает стандартная установка Linux, вам может никогда не понадобиться запускать 32-битную программу.
Некоторые коммерческие программы для Linux, особенно игры, доступны только в 32-битной версии. В таких редких случаях вам потребуется настроить 64-битную машину для запуска 32-битных программ.
Установите 32-разрядные библиотеки
Поскольку процессоры x86_64 созданы на основе технологии x86, они по-прежнему могут поддерживать 32-битные программы без какой-либо аппаратной эмуляции, которая потребовалась бы для запуска программ x86 в среде PowerPC или Sparc. В Linux для запуска 32-битных программ достаточно установить необходимые программные библиотеки. К счастью, многие дистрибутивы Linux предоставляют эти библиотеки в виде пакетов. Например, в Ubuntu пакет называется ia32-libs. Чтобы установить его, просто откройте окно терминала и введите:
sudo apt-get установить ia32-libs
Вы также можете установить его графическим способом через Synaptic.
После установки такие приложения, как Skype, и такие игры, как World of Padman, должны работать без дополнительной настройки.
Проблемы с GTK
При запуске 32-битных программ в 64-битной среде Ubuntu по-прежнему ищет движки GTK по умолчанию. Из-за этого вы можете получить такую ошибку: «неверный класс ELF». Подобные ошибки могут особенно раздражать в таких приложениях, как Chromium, новая версия браузера Google Chrome с открытым исходным кодом.
Ubuntu действительно устанавливает 32-разрядную версию движков GTK по умолчанию в /usr/lib32/gtk-2.0, но в моём случае я обнаружил, что темы GTK, такие как qtcurve, которую я использовал, не были найдены в этом каталоге. В результате программы GTK выглядели очень некрасиво.
Быстрое решение проблемы заключается в следующем:
1. Найдите 32-битный пакет для используемой вами темы. В моём случае я искал пакеты для Ubuntu.
2. Загрузите пакет и распакуйте его содержимое, как обычный сжатый файл.
3. Найдите файл библиотеки для темы. Для qtcurve он был найден по адресу «~/download-directory/usr/lib/gtk-2.0/2.10.0/engines/libqtcurve.so».
4. Скопируйте библиотеку в каталог lib32.
sudo cp ~/download-directory/usr/lib/gtk-2.0/2.10.0/engines/libqtcurve.so /usr/lib32/gtk-2.0/2.10.0/engines/
Для Chromium этого было достаточно, потому что сценарий запуска Chromium уже был настроен на поиск в «/usr/lib32/gtk-2.0». Если сценарий запуска программы, которую вы запускаете, ищет не там, а в /usr/lib/gtk-2.0, вам нужно будет изменить сценарий запуска или экспортировать переменную среды перед запуском программы. Для этого откройте окно терминала и введите:
export GTK_PATH=/usr/lib32/gtk-2.0
команда для запуска приложения
Если для программы не предусмотрен сценарий запуска, вы можете создать его, задав указанную выше переменную среды.
Если всё остальное потерпит неудачу
Я обнаружил, что некоторые приложения отказываются нормально работать в 64-битной среде при любых нормальных обстоятельствах, даже если установлены ia32-libs. Единственная жизнеспособная альтернатива, помимо замены 64-битной машины или программного обеспечения, — это запуск в среде chroot. Это буквально установка целой 32-битной версии вашей операционной системы в каталог на вашем компьютере. Это займёт больше места, чем простая установка нескольких библиотек, но так вы будете уверены, что установлены все 32-битные компоненты, включая модули ядра 3D-графики.