LINUX.ORG.RU

newbee: Запутался в версиях Linux


0

0

Есть некоторое ПО, которое необходимо распространять в бинарниках.

Версии под FreeBSD, Solaris, Windows не вызывают никаких трудностей,
но вот с Линуксами я запутался окончательно:

В моем распоряжении было несколько дистрибутивов. Под каждым
я компилировал программу и потом каждую программу запускал
под каждым линуксом.

В итоге получил вот такую таблицу совместимости:

Таким образом у меня есть 4 версии программы, как мне указать, какая
из них для какого линукса ?

------------------------------------------------------------------
Компилировано в   Ядро    glic    Работает в        Ядро   glibc
------------------------------------------------------------------
Madrake-10.1      2.6.8   2.3.3   Madrake-10.1      2.6.8  2.3.3

SuSE 7.3          2.4.10  2.2.4   SuSE 7.3          2.4.10 2.2.4
                                  SuSE 9.0          2.4.21 2.3.2  
                                  Knopix 3.8        2.4.27 2.3.2
                                  Debian 3.0        2.2.20 2.2.5

IBM/Linyx LiveCD  2.6.3   2.3.3   IBM/Linyx LiveCD  2.6.3   2.3.3

Debian 2.2        2.2.17  2.1.3   Debian 2.2        2.2.17  2.1.3   





Всегда делают проще - выкладывают исходники в tar.gz, src.rpm и как-там-называется-deb.

После этого под каждым дистрибутивом собирается программа и только после этого говорится, что бинарник под нее.

В противном случае пишут тупо какое было gcc и glibc при сборке и все пробуют на свой страх и риск.

jackill ★★★★★
()

Вот именно - если по серьезному этим заниматься, то надо выложить бинари под каждую версию каждого дистриба. Как например для Оперы сделали... А не то начинающие юзеры еще хуже запутаются :(

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

> Как например для Оперы сделали...

Наивный... :-)

SK
()

Задача непростая, но выполнимая. Варианта два:

1) Быть осторожным при написании сборке. Применять необходимый минимум библиотечных вызовов. Малые библиотеки включать статически, большие -- применять не слишком новые версии. И вообще применять поменьше библиотек. Какие вам нужны?

2) Распространять набор бинарных файлов (.o), и линковать их на месте, чтобы наверняка работало с родными библиотеками дистрибутива. В своё время, кажется, так распространялись коммерческие юниксы и софт под них. Сейчас так идут, кажись, драйвера от nVidia.

У меня есть бинарники, которые успешно прошли четырёхлетний путь от Mandrake 8.0 (или даже раньше?) до Slackware 10. И прекрасно работают.

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

Да никак особенных библиотек не используется.

libstdc++.so.3 => /usr/lib/libstdc++.so.3 (0x28078000) libm.so.2 => /usr/lib/libm.so.2 (0x280bd000) libc.so.4 => /usr/lib/libc.so.4 (0x280d9000)

(это под FreeBSD)

Заманчивый вариант - только бинарник - это CGI скрипт, который большая часть пользователей закчивает на сервер по FTP, не догадываясь что такое компиляция.

Самое сложное что они способны сделать - это узнать у саппорта, какая операционка установлена.

Спасибо. Ответы сильно помогли.

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