LINUX.ORG.RU

Запустить 32-битный бинарник на 64-битной системе

 , ,


0

1

Есть 32-битная софтина без сырцов, которую нужно запустить на gentoo ~amd64.

При запуске она отваливается с ошибкой error while loading shared libraries: libQt3Support.so.4: cannot open shared object file: No such file or directory

У неё много зависимостей, включая и другие 32-битные Qt'шные библиотеки. Но проблема именно с libQt3Support.

ldd /usr/local/blah G "not found"
libQt3Support.so.4 => not found

В системе установлен пакет app-emulation/emul-linux-x86-qtlibs

[I] app-emulation/emul-linux-x86-qtlibs
     Available versions:  20130224^s (~)20131008^s {+development gtkstyle}
     Installed versions:  20131008^s(09:18:05 PM 10/17/2013)(development -gtkstyle)
     Homepage:            http://dev.gentoo.org/~pacho/emul.html
     Description:         Provides precompiled 32bit libraries

Но в этом пакете нет нужной библиотеки:
 [ blackst0ne at home: ~ ]% equery f app-emulation/emul-linux-x86-qtlibs G libQt3Support
[ blackst0ne at home: ~ ]%  

Есть dev-qt/qt3support

[ blackst0ne at home: ~ ]% 0fs qt3support
[I] dev-qt/qt3support
     Available versions:  (4) 4.8.4 (~)4.8.5
       {+accessibility aqua c++0x debug +exceptions pch}
     Installed versions:  4.8.5(4)(10:00:48 PM 10/17/2013)(accessibility -aqua -c++0x -debug -exceptions -pch)
     Homepage:            http://qt-project.org/ http://qt.digia.com/
     Description:         The Qt3Support module for the Qt toolkit

Но этот пакет ставит только 64-битные библиотеки:

[ blackst0ne at home: ~ ]% equery f qt3support G "so.4" 
/usr/lib64/qt4/libQt3Support.so.4
/usr/lib64/qt4/libQt3Support.so.4.8
/usr/lib64/qt4/libQt3Support.so.4.8.5

Симлинком обмануть не получается, софтина вываливается с сообщением

error while loading shared libraries: libQt3Support.so.4: wrong ELF class: ELFCLASS64

Собственно, какое самое просто решение проблемы, учитывая, что софтину запустить всё-таки нужно (вариант «выкинуть её» не подходит)?

Какой ацетон надо пить, чтобы искать qt3support в гтк-либах?

emerge emul-linux-x86-qtlibs должно решить твою проблему.

FRCTLL ()

скомпилять нужные библиотеки 32-битным компилятором? Ну или доставить в систему 32-битные версии библиотек. Как это у вас на генте делается - это уж тебе виднее...

solovey ★★ ()

Ставь на выбор:

emul-linux-x86-baselibs
emul-linux-x86-compat
emul-linux-x86-cpplibs
emul-linux-x86-db
emul-linux-x86-glibc-errno-compat
emul-linux-x86-gstplugins
emul-linux-x86-gtklibs
emul-linux-x86-gtkmmlibs
emul-linux-x86-java
emul-linux-x86-jna
emul-linux-x86-medialibs
emul-linux-x86-motif
emul-linux-x86-opengl
emul-linux-x86-qtlibs
emul-linux-x86-sdl
emul-linux-x86-soundlibs
emul-linux-x86-xlibs

imul ★★★★★ ()

Есть 32-битная софтина
этот пакет ставит только 64-битные библиотеки
Симлинком обмануть не получается,

Что ты делаешь? Пректати. Это совсем не смешно.

nanoolinux ★★★★ ()
Ответ на: комментарий от nanoolinux

Что ты делаешь? Пректати. Это совсем не смешно.

:D
Не смешно будет, если у него получится %)))

UVV ★★★★★ ()
Ответ на: комментарий от FRCTLL

Какой ацетон надо пить, чтобы искать qt3support в гтк-либах?

emerge emul-linux-x86-qtlibs должно решить твою проблему.


Неправильно скопировал на ЛОР.
Поправил исходный пост.

blackst0ne ★★★★★ ()
Ответ на: комментарий от Pinkbyte

emerge emul-linux-x86-qtlibs

[ blackst0ne at home: ~ ]% equery f app-emulation/emul-linux-x86-qtlibs | grep -i support
[ blackst0ne at home: ~ ]% 
blackst0ne ★★★★★ ()
Последнее исправление: blackst0ne (всего исправлений: 2)

Будь мужиком, скачай stage_х86 и собери в chroot'е!

anonymous ()

Пускай в виртуалке. К чёрту это легаси.

anonymous ()

ldd?? /usr/bin/linux32 chroot?? Не не слышал…

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

ldd?? /usr/bin/linux32 chroot?? Не не слышал…


Про chroot слышал, конечно. Но я рассчитывал на более элементарный способ решения прорблемы.

blackst0ne ★★★★★ ()
Ответ на: комментарий от blackst0ne

Про chroot слышал, конечно. Но я рассчитывал на более элементарный способ решения прорблемы.

„более элементарный“ в данном случае либо собрать из сырцов под нужную архитектуру либо {отыскать/найти/украсть/купить} собранный кем-то, к его примеру разработчиком, под нужную тебе архитектуру.

Иначе проблема в твоей постановке имеет решение в виде нарыл все зависимости при помощи ldd и, при желании, вообще запихнул её в свой собственный 32х битный ченжрут.

init_6 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.