|
Может кому пригодится.
Пробуем запустить
К примеру хотим запустить приложение, как узнать что оно 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 …Если повезет, то все заработает)))
|