Home Пункт 1 Подпункт1.1
Запуск 32-bit программ на 64-bit Linux PDF Печать E-mail
Автор: Administrator   
12.10.2006 01:13

Может кому пригодится.

Пробуем запустить

К примеру хотим запустить приложение, как узнать что оно 32-битное?

Например можно использовать команду file:

~/bin/n_v1linux$ file ./n_v14
./n_v14: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped

Как рабочий минимум вам потребуется установить следующие приложения:

sudo apt-get install ia32-libs ia32-libs-gtk ia32-libs-sdl dpkg-dev

Вот что происходит если попытаться запустить 32-bit программу:

~/bin/n_v1linux$ ./n_v14
./n_v14: error while loading shared libraries: libgtk-1.2.so.0: cannot open shared object file: No such file or directory

Если установить  libgtk-1.2 используя Synaptic, то этого будет не достаточно,

т.к будет установлена только 64-bit версия(в /usr/lib/libgtk-1.2.so.0.9.1):

$ locate libgtk-1.2.so.0
/usr/lib/libgtk-1.2.so.0.9.1
/usr/lib/libgtk-1.2.so.0
/home/tyler/bin/n_v1linux/libgtk-1.2.so.0


$ file /usr/lib/libgtk-1.2.so.0
/usr/lib/libgtk-1.2.so.0: symbolic link to `libgtk-1.2.so.0.9.1'

$ file /usr/lib/libgtk-1.2.so.0.9.1
/usr/lib/libgtk-1.2.so.0.9.1: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), stripped

Если просто скопировать нужную библиотеку в папку /usr/lib32, то это к сожалению просто не поможет:

$ sudo cp /usr/lib/libgtk-1.2.so.0 /usr/lib32/libgtk-1.2.so.0

Нельзя совместно использовать 32-bit binaries (приложения) и 64-bit binaries (библиотеки)!

~/bin/n_v1linux$ ./n_v14
./n_v14: error while loading shared libraries: libgtk-1.2.so.0: wrong ELF class: ELFCLASS64

Находим и устанавливаем необходимые 32-bit версии библиотек

Вот что можно сделать:

Идем на http://packages.ubuntu.com/ (в случае с *ubuntu)

Находим раздел “Search the contents of packages”

Ищем необходимый пакет

В случае такой ошибки:

./n_v14: error while loading shared libraries: libgtk-1.2.so.0: cannot open shared object file: No such file or directory

Берем имя файла (libgtk-1.2.so.0) и тыкаем search.

Из результатов выбираем подходящий:

  • libdevel/libgtk1.2-dbg [universe]
  • libs/libgtk1.2 [universe]

Девелопмент версия нам не нужна, так что идем по ссылке на libs/libgtk1.2, http://packages.ubuntu.com/gutsy/libs/libgtk1.2.

Смотрим кнопку/ссылку  “Download libgtk1.2″ и кликаем на нужную архитектуру: i386, которая 32-bit.

Скачиваем файл(вида libgtk1.2_1.2.10-18_i386.deb) и в контекстном меню выбираем Open with "Archive Manager".

Ищем в недрах пакета необходимые файлы:

libgdk-1.2.so.0  libgdk-1.2.so.0.9.1  libgtk-1.2.so.0  libgtk-1.2.so.0.9.1

И копируем их в  /usr/lib32 …Если повезет, то все заработает)))

Обновлено 02.07.2010 09:14
 
© 2010 Мышиный уголок. Все права защищены.
Joomla! — свободное программное обеспечение, распространяемое по лицензии GNU/GPL.