LINUX.ORG.RU

[debian] 32 битные библиотеки под amd64

 


0

0

необходимо собрать исходники на с++ под 32 бита для 64-битной системы (сборка происходит на ubuntu amd64).

вначале пытался рещить как-то используя gcc-multilib (ключик -m32), оно даже компилится, но не линкуется, так как много зависимостей на boost, mysql, libgd и прочих.

Есть ли какой то способ установить 32 битные пакеты (к паримеру libboost-thread) в 64-битную систему в директорию lib32?

Не найдя способ - собрал исходники в chroot-е debian-а lenny i386. Всё работает, но как деплоить на сервер (возникает тот-же вопрос с бинарниками библиотек)?

Создал скрипт, выполняющийся до сборки пакета, который ищет зависимости и копирует их в директорию lib проекта, а при линковке настроил rpath, чтоб лоадер искал зависимости в этой директории.

Работает, но мне кажеться, что это не совсем правильный способ (носить библиотеки с собой в пакете - вроди как не принято).

Как решить даную проблему правильно?

Заранее благодарю за помощь.


Имхо, проще всего завести небольшие разделы под отдельную систему, чтобы можно было без геморроя устанавливать все пакеты aptitude'ом. После чего к основной системе с помощью mount или симлинков прикручиваем раздел с нужными либами из вспомогательной системы.

runtime ★★★★
()

Насчёт установки на сервер "красивое" решение в голову пока не приходит

runtime ★★★★
()

Вот чем мне нравится мандрива, что абсолютно все библиотеки в репозитории доступны в двух вариантах и такой 2.71бли со сборкой под 32 бита тут нет впринципе.

А так да, только chroot и спасет.

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

Установка 64битной ОС ничего не дает. Доказано habr© http://habrahabr.ru/blogs/server_side_optimization/75229/

Ну если конечно не считать той мелочи, что вся целевая разработка обычно ведется естественно сугубо под x86_64 и однородность окружения заметно помогает в жизни то да, ничего не даёт.

PS: Я даже больше скажу - она на десктопе только мешает. Вот у меня, допустим, флеш не работает. Хотя в принципе должен пахать и даже встал и тд и тп до вот валится где-то в корку. И колупать где именно нет ни малейшего желания. Хотя стояла бы i386 и, уверен, он так или иначе но заработал бы. Ну и хрен с ним. Если мне так уж захочется посмотреть пару серий South Park или там ещё чего я перегружусь в Единственную Ъ систему где отродясь все работало, возьму пивка и посмотрю.

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

>Вот у меня, допустим, флеш не работает.

Вот у меня, допустим, флеш работает на AMD64. И колупать где именно у вас не работает нет ни малейшего желания ;)

>Хотя стояла бы i386 и, уверен, он так или иначе но заработал бы.


В переводе: «Я не знаю как бы именно было, но скажу как удобно моей точке зрения».

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

Вот у меня, допустим, флеш работает на AMD64. И колупать где именно у вас не работает нет ни малейшего желания ;)

У вас тоже RHEL 5.4?

bibi
()
Ответ на: комментарий от Deleted

*смотрит на аватарку* Debian testing

'Понял, отстал' (c)...

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

А, ну и ещё мелочь одну забыл - виртуалки. Попробуйте запустить скажем x86_64 OS под VMware, установленной на i386 хосте. Фиг. По понятным причинам. Обратно - пожалуйста (i386 на x86_64 хосте). А, бывает, что это весьма актуально.

bibi
()
Ответ на: комментарий от Reset

Можно и chroot =) Правда, если не ошибаюсь, в этом случае иксовую прогу из этого самого chroot'a потом запустить надо постараться. Хотя автору возможно это не грозит.

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

> завести небольшие разделы под отдельную систему

ну это ещё больше проблем чем chroot, в котором aptitude тоже работает без проблем

stpg
() автор топика
Ответ на: комментарий от Reset

> Вот чем мне нравится мандрива...

Ну дебиан привычнее както, всё нравиться, кроме указаной проблемы

stpg
() автор топика
Ответ на: комментарий от Karapuz

> Установка 64битной ОС ничего не дает. Доказано habr©

Ну если чесно, то в той статье особо полезного ничего не нашел;) Просто жалоба юзера и куча коментов, объясняющих где он не прав.

stpg
() автор топика
Ответ на: комментарий от runtime

> Можно и chroot =) Правда, если не ошибаюсь, в этом случае иксовую прогу из этого самого chroot'a потом запустить надо постараться. Хотя автору возможно это не грозит.

Иксы не нужны.

А вот другая идея появилась, для сервака:

* создаём /var/root32/usr/lib
* делаем mount --bind /usr/lib32 /var/root32/usr/lib
* устанавливаем: dpkg -i --force-architecture --instdir=/var/root32/ programm-i386.deb

Или всё же сделать chroot на серваке, установть туда всё и прописать путь в /etc/ld.so.conf?

И что всё-таки лучше для сервака - загаживать систему 32-битными пакетами, или таскать зависимости с собой?

stpg
() автор топика
Ответ на: комментарий от bibi

Я лично пускал висту 64 на 32 битном хосте с ц2д под вмварью. По её мануалам для линукса это тоже вполне возможно, ей важна только поддержка проца.

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