1. софт под Lunux (Ubuntu 14.04 LTS) который зависит от пакетов boost-1.55, wxWidgets-3.0.2(сам собирал), OSG 3.2.2(сам собирал) .
2. Каждый из этих пакетов можно поставить вручную черех apt-get, но это будут не те версии которые мне нужны.
3. я не хочу чтобы пользователь что либо доустанавливал. Хочу сделать так чтобы все .so были включены в инсталляционный пакет софта.
Так вообще принято ? Или в мире *NIX принято немного иначе ?
Здравствуйте, sjukov, Вы писали:
s> 3. я не хочу чтобы пользователь что либо доустанавливал. Хочу сделать так чтобы все .so были включены в инсталляционный пакет софта.
Собери все статически.
Hardware eventually fails. Software eventually works. ::: avalon/1.0.442
Здравствуйте, sjukov, Вы писали:
S>у меня есть такая ситуация:
S>1. софт под Lunux (Ubuntu 14.04 LTS) который зависит от пакетов boost-1.55, wxWidgets-3.0.2(сам собирал), OSG 3.2.2(сам собирал) . S>2. Каждый из этих пакетов можно поставить вручную черех apt-get, но это будут не те версии которые мне нужны. S>3. я не хочу чтобы пользователь что либо доустанавливал. Хочу сделать так чтобы все .so были включены в инсталляционный пакет софта.
S>Так вообще принято ? Или в мире *NIX принято немного иначе ?
Не принято. Либо переписывай свой софт под старые версии, которые идут с Ubuntu 14.04, либо поставляй их в отдельном пакете. Ну или забей на то, как принято, и делай как хочешь. Хоть статически собирай.
Погуглите про создание .deb пакетов. Пакеты можно создавать из стандартного дерева исходников с Makefile-ами с добавлением
каких угодно .so файлов. Вы можете в пакет поместить все файлы проги и требуемые либы, требуемой версии,
после чего устанавливать пакет стандартной командой dpkg или поместить в локальный репо и оттуда ставить и обслуживать его apt-get-том.
S>>у меня есть такая ситуация:
S>>3. я не хочу чтобы пользователь что либо доустанавливал. Хочу сделать так чтобы все .so были включены в инсталляционный пакет софта. S>>Так вообще принято ? Или в мире *NIX принято немного иначе ? vsb>Не принято. Либо переписывай свой софт под старые версии, которые идут с Ubuntu 14.04, либо поставляй их в отдельном пакете. Ну или забей на то, как принято, и делай как хочешь. Хоть статически собирай.
Спасибо за мысль.
Основаная проблема что у меня есть определенная несовместимость версий. Код OSG не копмпилируется с более старой версией заголовков которые идут с 14.04 ;
И я босюь что мне будет сложно поддерживать совместимость со всем этим разнообразием.
s>> 3. я не хочу чтобы пользователь что либо доустанавливал. Хочу сделать так чтобы все .so были включены в инсталляционный пакет софта. W>Собери все статически.
Если не ошибаюсь то это для меня не вариант, ибо софт должен быть коммерческим с закрытым кодом.
А насколько я понимаю единственным способом обойти все сложности лицензии это динамическая линковка
к библиотекам .
Здравствуйте, sjukov, Вы писали:
s> Если не ошибаюсь то это для меня не вариант, ибо софт должен быть коммерческим с закрытым кодом. s> А насколько я понимаю единственным способом обойти все сложности лицензии это динамическая линковка s> к библиотекам .
В этом случае библиотеки можно сделать как private libraries (/usr/lib/<pkgname>) — в этом случае исключается потенциальный конфликт с системными библиотеками, они однозначно идентифицируются как принадлежащие pkgname и т.д.
Управляю вселенной не привлекая внимания санитаров.
Здравствуйте, sjukov, Вы писали:
S>1. софт под Lunux (Ubuntu 14.04 LTS) который зависит от пакетов boost-1.55, wxWidgets-3.0.2(сам собирал), OSG 3.2.2(сам собирал) . S>2. Каждый из этих пакетов можно поставить вручную черех apt-get, но это будут не те версии которые мне нужны. S>3. я не хочу чтобы пользователь что либо доустанавливал. Хочу сделать так чтобы все .so были включены в инсталляционный пакет софта.
Не делают тут так. Категорически не рекомендуется. Иначе ад, холокост и змеиные гнёзда на машинах клиентов. И как следствие — посты в интернетах, обмазывающие линупс некоей известной субстанцией.
А разгребать это всё потом админам, вынужденным работать с таким, простите, софтом.
зы. Я начинаю понимать, откуда растут ноги у всей вони вокруг линупса...
Здравствуйте, sjukov, Вы писали:
S>1. софт под Lunux (Ubuntu 14.04 LTS) который зависит от пакетов boost-1.55, wxWidgets-3.0.2(сам собирал), OSG 3.2.2(сам собирал) . S>2. Каждый из этих пакетов можно поставить вручную черех apt-get, но это будут не те версии которые мне нужны. S>3. я не хочу чтобы пользователь что либо доустанавливал. Хочу сделать так чтобы все .so были включены в инсталляционный пакет софта.
S>Так вообще принято ? Или в мире *NIX принято немного иначе ? S>Сам всю жизнь под виндовс маслал
Так не принято, рекомендуется собирать deb-пакеты, это совсем не сложно. Тем не менее можно свалить все динамические библиотеки и исполняемый файл в одну папку, а потом попробовать запустить это на другом дистрибутиве линукса, у меня это даже работало.
Что касается пакетов возникает вопрос проблематичности их пересборки. Вот здесь на помощь приходят системы непрерывной интеграции, типа Jenkins. За один шаг она способна скомпилировать и слинковать программу с исполняемым файлом и всеми библиотеками, сгенерировать документацию, причём сделать это для всех операционных систем, Windows (NSIS), GNU/Linux (deb, rpm) и так далее.