Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программное обеспечение Linux и FreeBSD (http://forum.oszone.net/forumdisplay.php?f=11)
-   -   [решено] Linux приложения под FreeBSD (MainActere5) (solved) (http://forum.oszone.net/showthread.php?t=50354)

mar 12-06-2005 23:10 332366

Linux приложения под FreeBSD (MainActere5) (solved)
 
у меня довольно своеобразная проблема - некоторым образом между осями.
Имеется FreeBSD 5.4 с поддержкой Linux.
Соответственно в /compat/linux/ установлены linux_base и linux_devtools. Установка некоторых линуксных приложения проблем не вызывают (например, adobe acrobat).
Про себя этот линукс говорит:
Linux i686 i386 GNU/Linux

Это вводная :)
Сегодня попробовала поставить demo- видеоредактора MainActor_V5-5-2.01
rpm при установке
Код:

rpm -i --dbpath /var/lib/rpm --root=/compat/linux/ --ignoreos ./MainActor_V5-5-2.01.i686.rpm
заявляет:
Цитата:

ошибка: неудовлетворенные зависимости:
libqt-mt.so.3 нужен для MainActor_V5-5-2.01
libavc1394 нужен для MainActor_V5-5-2.01
libraw1394 нужен для MainActor_V5-5-2.01
SDL нужен для MainActor_V5-5-2.01
libqt-mt.so.3 в /compat/linux/lib имеется. Сделала simlink в /lib - не помогает
Ставлю (не без приключений =)) libraw1394 и libraw1394, скачиваю SDL и получаю:

Код:

rpm -i --dbpath /var/lib/rpm --root=/compat/linux/ --ignoreos ./SDL-1.2.8-1.i386.rpm
Цитата:

ошибка: неудовлетворенные зависимости:
libX11.so.6 нужен для SDL-1.2.8-1
libXext.so.6 нужен для SDL-1.2.8-1
И та, и другая библиотека имеется и в /compat/linux/usr/X11R6/lib и (свои, соответственно) в соответствующем FreeBSD-ом каталоге. Я сделала в compat ссылки всюду, куда только можно (в /compat/linux/lib, например), но ничего не помогает. Кстати, если сказать
Код:

/compat/linux/bin/rpm -i --dbpath /var/lib/rpm --root=/compat/linux/ --ignoreos ./SDL-1.2.8-1.i386.rpm
- неудовлетворенных зависимостей показывает еще больше. Буду рада любым идеям.
Кстати, не смотря на то, что libqt-mt.so.3, libavc1394 и libraw1394 стоят, ругань по поводу их отсутствия продолжается

mar 12-06-2005 23:30 332370

поставила SDL-1.2.8-1.i386.rpm c ключем --nodeps
Вроде, отыграло, но сам MainActor_V5-5-2.01.i686.rpm так поставить не удалось. Ответ был
Цитата:

пакет MainActor_V5-5-2.01 - для другой архитектуры
. А --ignoreos - то на что? (а без --nodeps ругаемся на libqt-mt.so.3, libavc1394 и libraw1394)
Ладно, добавим --ignorearch
Код:

rpm -i --nodeps --ignorearch --dbpath /var/lib/rpm --root=/compat/linux/ --ignoreos ./MainActor_V5-5-2.01.i686.rpm
съелось без ругани, но и без показа чего-либо, как в случае с SDL:
Цитата:

SDL ##################################################
а при попытке запуска:
Цитата:

./mactor: error while loading shared libraries: libqt-mt.so.3: cannot open shared object file: No such file or directory
Так как скормить псевдолинуксу его же библиотеки :) ?

mar 12-06-2005 23:48 332374

Пардон. Заработалась. libqt-mt.so.3 (линуксячьево) действительно нет. Пойду искать, где бы скачать

mar 13-06-2005 00:49 332378

ну вот :( Подробный отчет о проделанной работе, к сожалению, безрезультатной. (может пригодится любителям ставить линукс-приложения под фри?)

Цитата:

rpm -i --dbpath /var/lib/rpm --root /usr/compat/linux/ --ignoreos ./MainActor_V5-5-2.01.i686.rpm
ошибка: неудовлетворенные зависимости:
libqt-mt.so.3 нужен для MainActor_V5-5-2.01
libraw1394 нужен для MainActor_V5-5-2.01 -- первая -- нужен /dev/raw1394 --
/compat/linux/bin/mknod -m 666 /compat/linux/dev/video1394 c 171 16
/compat/linux/bin/mknod -m 666 /compat/linux/dev/raw1394 c 171 16
/compat/linux/bin/sh configure
make и make install - тоже из compat
-- пришлось дедать симлинки из /compat/linux/usr/local/lib на /usr/local/lib

libavc1394 нужен для MainActor_V5-5-2.01 -- вторая
-- Package libraw1394 was not found in the pkg-config search path. Perhaps you should add the directory containing `libraw1394.pc' to the PKG_CONFIG_PATH environment variable No package 'libraw1394' found
-- configure: error: Library requirements (libraw1394 >= 1.0.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.
/compat/linux/bin/sh configure PKG_CONFIG_PATH=/compat/linux/usr/local/lib/pkgconfig
-- пришлось дедать симлинки из /compat/linux/usr/local/lib на /usr/local/lib
SDL нужен для MainActor_V5-5-2.01
rpm -i --nodeps --ignorearch --dbpath /var/lib/rpm --root=/compat/linux/ --ignoreos ./SDL-1.2.8-1.i386.rpm

Дальше пытаемся запустить mactor и получем сообщения о нехватке тех, или иных библиотек.

Библиотеки: (rpm взяты с сайта altlinux и развернуты:
rpm -i --nodeps --ignorearch --dbpath /var/lib/rpm --root=/compat/linux/ --ignoreos файл
libGLU-5.0.1-alt7.i586.rpm
libGLwrapper-5.0.1-alt7.i586.rpm
libXaw3d-1.5-alt2.i586.rpm
libaudio-1.6-alt2.i586.rpm
liblcms-1.09-alt1.i586.rpm
libmng-1.0.5-alt1.i586.rpm
libqt3-3.1.2-alt12.i586.rpm

а эти были нагло утянуты с 4-ого RedHat-а:
libXv.so.1.0
libGL.so.1.2
libGL.so.1

В некоторых случаях из /compat/linux/usr/X11R6/lib в /compat/linux/lib пришлось делать симлинки
И, наконец, результат :sorry:
mar@free$ ./mactor
идет заставка, после чего:
Binary file: ./mactor
Segmentation fault

Видимо, лезим куда-то в железо куда не просят? Кстати, требуемого выше 1394 у меня нет, - mknod просто сделан под всевдолинукс (не под основную систему). Но вряд ли это игрет тут какую-нибудь роль при загрузке программы.

ruslandh 13-06-2005 01:03 332380

mar
1 К сожалению это частое явление, когда бинарные пакеты из разных дистрибутивов друг-другу противоречат. Одни собирались с одними опциями, другие с другими, в результате динамические библиотеки не соответствуют друг-другу. Ставятся обычно без проблем только статически слинкованные программы.
2 Тут единственный вариант - всё пересобирать в своей среде. Вам наверное будет ближе Gentoo - там как и в FreeBSD идёт автоматическая пересборка пакетов.

mar 13-06-2005 01:21 332382

ruslandh
MainActor - коммерческий продукт. Особо не пособираешь :( (Да и на FreeBSD мне пока нравится, - жаль было бы слезать) (Можно разве что стянуть родные SuSe-шные библиотеки и попробовать с ними, но signal 11 - вообще-то, вроде как говорит об аппаратных заморочках и попытках залезть в чужое адресное пространство? Хотя при крупных работах (например перекомпиляции ядра) таких проблем нет. Так что, скорей всего дело не в машине, а просто "в одну телегу впрячь невможно..." Аминь (хотя и жаль) :)

ruslandh 13-06-2005 02:32 332394

Скачал его - у меня в "Сизифе" работает. Bсё-же ключевой момент
Цитата:

а эти были нагло утянуты с 4-ого RedHat-а:
libXv.so.1.0
libGL.so.1.2
libGL.so.1
>rpm -qf libXv.so.1.0
xorg-x11-libs-6.8.2-alt9
>rpm -qf libGL.so.1.2
xorg-x11-mesagl-6.8.2-alt9
>rpm -qf libGL.so.1
xorg-x11-mesagl-6.8.2-alt9

mar 13-06-2005 10:03 332417

ruslandh
ясно, то есть стоит (прежде чем махнуть рукой на эту идею) доставить библиотеки отттуда же (или взять все с suse). А не подскажите - где копать на altlinux? А то xorg-x11-libs-6.8.2-alt9 найти поиском по репозитарию не удалось, а apt-get я по понятным причинам сказать не могу :)
(кстати из серьезных linux-ных приложений, поставленных не из портов у меня живет Java Netbeans, - но это среда разработки, не связанная с аппаратной частью. Тогда при установке пришлось только при помощи brandelf промаркировать файлй, как линуксный и он благополучно поставился, причем в нативную FreeBSD - среду)
зы - может быть, дело действительно в библиотеках. Судя по обсуждению после надписи, которую я вижу:
Цитата:

Loading fonts...
143 fonts loaded
идет
Цитата:

Loading libraries...
(которую я уже не вижу из-за отвала) Но, похоже речь идет о библиотеках самого MainActor-а

ruslandh 13-06-2005 19:11 332508

1 Не знаю, есть-ли во FreeBSD, но в Linux есть специальная команда ldd, которая выдаёт какие динамические библиотеки используются и есть-ли найдены-ли они системой.
2 ftp://ftp.altlinux.ru/pub/distributi...-alt9.i586.rpm
ftp://ftp.altlinux.ru/pub/distributi...-alt9.i586.rpm
Естественно, завтра версии могут поменяться :)
3 А Linux xorg не конфликтует с FreeBSD xorg ?
4 У меня большое подозрение, что это приложение может работать и без эмуляции Linux
Даю для справки его ldd :
ldd mactor
linux-gate.so.1 => (0xffffe000)
libdl.so.2 => /lib/libdl.so.2 (0x4001b000)
libqt-mt.so.3 => /usr/lib/libqt-mt.so.3 (0x40020000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x406fe000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4070c000)
libpthread.so.0 => /lib/libpthread.so.0 (0x407d8000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4082b000)
libm.so.6 => /lib/libm.so.6 (0x408e4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40908000)
libc.so.6 => /lib/libc.so.6 (0x40911000)
/lib/ld-linux.so.2 (0x80000000)
libaudio.so.2 => /usr/X11R6/lib/libaudio.so.2 (0x40a29000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40a3e000)
libz.so.1 => /lib/libz.so.1 (0x40a91000)
libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x40aa4000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0x40aad000)
libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0x40ab1000)
libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0x40aba000)
libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0x40abd000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x40acf000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x40b41000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40b71000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40b7a000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x40b91000)
libexpat.so.0 => /usr/lib/libexpat.so.0 (0x40c62000)


mar 13-06-2005 19:39 332514

ldd там, конечно, есть (это общая никсовая штука)
Проблема в том, что я стала запихивать все это в linux-среду из-за
libraw1394
libavc1394
Их просто не собрать FreeBSD-ым make -ом - вываливатся ошибки, да и вещи это чисто линуксные, причем связанные с аппаратной средой :-(

Можно, конечно попробовать их засунуть в compat и высунуть наружу ссылки...
Ладно, сначала скачаю недостающие rpm (спасибо :)),
потом поэкспеременитирую дальше.

PS rpm -i --nodeps --ignorearch --dbpath /var/lib/rpm --ignoreos ./MainActor_V5-5-2.01.i686.rpm
То есть ставим прямо во FreeBSD среду
Цитата:

which mactor
/usr/bin/mactor
Запускаем, - дальше все, как раньше =(

mar 13-06-2005 22:39 332541

добавление:
1) поставила (из портов) avidemux2 с поддержкой SDL, что, по идее должно было исправить мои игры с линуксячьим SDL
2) mactor поставлен в FeeBSD (без --root=/compat/linux)
2) получила core при запуске mactor (для этого пришлось рискнуть запустить его от root-а)
Код:

$gdb --core=mactor.core > core.txt
$cat core.txt
GNU gdb 6.1.1 [FreeBSD]
...
Core was generated by `mactor'.
Program terminated with signal 11, Segmentation fault.
#0  0x0815c310 in ?? ()
(gdb)


ruslandh 14-06-2005 08:14 332587

Да :( не позавидуешь

FrIcE 14-06-2005 17:35 332749

Может с путями ldconfig'а чего.

mar 14-06-2005 17:49 332752

FrIcE
ну вообще-то это штука может русским языком сказать, если библиотек нет, а когда вываливаются таким непотребным образом - это вряд ли...
Хорошо. Ваше предложение поподробней можно? (с учетом того, что в иных случаях никаких проблем такого рода нет)

mar 15-06-2005 02:01 332940

Описала проблему на opennet. Там нашелся человек, который это заставил работать. (Правда года полтора-2 назад, значит еще не под xorg?) Заседание продолжается... :)

FrIcE 15-06-2005 12:54 333041

На счёт библиотек - у меня был случай, когда я криво перекомпилил и обновил glib (без поддержки pthreads) - половина приложений вываливалась с segmentation fault, вторая половина зависала наглухо. В предыдущем посте немного неправильно выразился: тут скорее не проблема с путями, а проблема с несовместимостью библиотек. Могу порекомендовать стянуть rpm'ы (и саму софтину) и заново всё переустановить, либо как говорили на opennet'е: поставить vmware, запустить там, а потом уже ставить всё, что нужно в BSD.

mar 15-06-2005 16:02 333253

да нет, с приложениями у меня все в порядке. Буду чистить, ставить base_suse9.2, смотреть, работают ли остальные linux-приложения и т.д.

Belansky 15-06-2005 16:26 333260

mar
А, если попробовать максимально абстрагироваться от FreeBSD, и сделать попытку установить в программу в chroot /compat/linux/. Интересно, что в этом случае получится/не получится?

mar 15-06-2005 17:47 333292

Belansky
тоже вариант :)
на сейчасный момент:
--- попробовала снести имеющиеся вещи (скопировав, естественно, /compat в укромное место :)), поставила порт linux_base_suse9.2. Удача первая: на него не linux_devtools Удача вторая (наверное, следствие первой? - отрубился и не ставится, так как не видит библиотек,- акробат.
Варианты:
1) поставить куда-нибудь полный SUSE (например на той же мешине на другой диск, потом загрузиться с FreeBSD, подмонтировать SUSE и скачать все нужные библиотеки). Минус этого варианта: у меня сейчас есть DVD с дистрибутивом, но нет DVD-железки :)
2) вернуть linux_base + devtools от redhat 8 и пробовать крутить с ними
Идея chroot мне нравится, но пока не хватает программ и библиотек для полноценного chroot-а (так что придется смотреть варианты 1-2)

mar 15-06-2005 23:42 333379

Ура! спасибо orc с opennet - все получилось. Вот короткий отчет:
Цитата:

кратко:
(ставится mainactor-5.5.7-suse_9.2.i686.rpm)
--стоят порты:
linux_base8
linux_devtools
/usr/ports/x11/linux-XFree86-libs
-- все linux-части надо брать в rpm-ах c http://rpm.pbone.net/, для suse9.2 (для которого MainActor);
--все ставится, как уже говорилось сугубо в linux-среду:
Код:

rpm --install --root /compat/linux/ --ignoreos --ignorearch имя_rpm
Таким образом устанавливаются:
SDL-1.2.8-1.i386.rpm
libavc1394-0.5.0-1.pm.1.i586.rpm
libraw1394-1.2.0-1.pm.2.i586.rpm
-- ставится mainactor-5.5.7-suse_9.2.i686.rpm
=== дальше для запуска mactor ставятся недостоющие библиотеки (см. ldd) из:
libpng-1.2.6-4.i586.rpm

(Если не хватает какой-нибудь библиотеки, понять, в каком именно rpm она находится можно на сайте http://rpmfind.net/. Пример запроса: http://rpmfind.net/linux/rpm2html/se...=ld-linux.so.2)
===
и обновляется glibc-2.3.3-118.i586.rpm:
Код:

rpm --upgrade --root /compat/linux --ignoreos --ignorearch --nodeps --force glibc-2.3.3-118.i586.rpm

Мои ошибки:
- лучше брать только rpm (я компилила и получала дополнительные развлечений)
- rpm - только соответсвующие нужной версии нужного дистрибутива
- glibc - тоже должен соответствовать

Belansky 16-06-2005 08:46 333452

mar
Мои искренние поздравления. Упорство и труд всегда истину найдут. :up:


Время: 11:51.

Время: 11:51.
© OSzone.net 2001-