Как запускать 32х разрядные приложения (Linux) в 64х битном окружении?

Рейтинг: 0Ответов: 1Опубликовано: 17.05.2011

Под 64 разрядной ОС (Ubuntu 10.04 x86_64) нужно запустить 32х разрядное приложение (CAD пакет Medusa Personal). Немного сомневаюсь, как поступать в таких случаях. При попытке запустить выдает

/opt/medusa4_personal_v5_0/medcolraster/m2d/run/draft: error while loading shared libraries: libtiff.so.3: wrong ELF class: ELFCLASS64

насколько я понимаю, это из за разрядности. Вообще вопрос более общий. Как вообще запускать приложения в таких случаях (не конкретно Медузу)? Доставлять библиотеки 32х? Откуда доставлять и какие?

Ответы

▲ 2Принят

Доставлять библиотеки 32х?

Да

Откуда доставлять и какие?

Из репозитариев. Вот взять skype, например. Это стандартная проприетарная программа в rpm-пакете. Под 32-бита работает отлично, под 64-битной системой не запускается с выдачей сообщения об ошибке. Приходится вручную доставлять библиотеки. На разных системах - разные. Но списочек может получиться, например, такой: ia32-libs, lib32asound2, libasound2-plugins. Как видно из названий библиотеки 32-битные. Проблема с проприетарностью лишь та, что просто не все зависимости прописаны.

По медузе решение тоже есть. Необходимо в файле /medusa4/master_project/login добавить строчки с указанием путей к 32-битным библиотекам

## added to access 32bit libraries
setenv LD_LIBRARY_PATH \
`edpath -a  LD_LIBRARY_PATH /usr/lib32`

Затем сделать ссылку на 32-битную версию библиотеки

cd /usr/lib32
sudo ln -s  /usr/lib32/libbz2.so.1.0.4  libbz2.so.1