На какой дистрибутив Linux я должен ссылаться для лучшей двоичной совместимости? - PullRequest
2 голосов
/ 24 августа 2010

Мне интересно, какой дистрибутив Linux был бы лучше (то есть вводит наименьшее количество зависимостей) при связывании двоичного файла, который должен работать на максимально возможном количестве дистрибутивов с общими библиотеками.

Я сделал это в Ubuntu, но список зависимостей ужасен . SDL представляет PulseAudio и еще много чего. Следующим моим предположением будет использование Debian lenny - какой, по вашему мнению, дистрибутив для этого лучше?

Ответы [ 4 ]

3 голосов
/ 24 августа 2010

Если вы не хотите выпускать исходный код и компилировать его на целевых системах с помощью сценария установки, предоставьте все статически связанные или отправьте свои собственные файлы, и используйте в используемом сценарии переменные окружения LD_LIBRARY_PATH и LD_PRELOAD запустить свой исполняемый файл. (Пример того, как это сделать, можно увидеть в упаковке Mozilla Firefox)

Также применяются юридические вопросы: НИКОГДА не используйте код GPL. И никогда не связывайте статически с кодом LGPL (среди прочих вопросов).

Любое другое решение оставляет слишком много места для удачи или удачи и не вызовет ничего, кроме разочарования.

1 голос
/ 24 августа 2010

Правильный способ создания программного обеспечения для Linux - поместить один тарбол исходного кода на выпуск в стабильном месте на вашем сайте, и позволить дистрибутивам разобраться со всем остальным. Не пытайтесь производить двоичные файлы самостоятельно. Вы спасете себя от бесконечной скорби.

1 голос
/ 24 августа 2010

Если я правильно помню, связывание с SDL в одном дистрибутиве, для которого в качестве зависимости от SDL есть PulseAdio, не означает, что ваша программа всегда должна быть связана с Puludio на каждом дистрибутиве.Вам не нужно помещать -lpulseaudio в строку компиляции, не так ли?sdl-config --libs на моей коробке с Ubuntu его нет.

0 голосов
/ 24 августа 2010

Если вы посмотрите документацию QT, в разделе http://doc.trolltech.com/4.6/deployment-x11.html «Создание пакета приложения» они предлагают создать пакет, подобный пакету Mac, со сценарием оболочки для его запуска.

Вы можете сделать то же самое;Вам нужно будет создать необходимые библиотеки и включить их в свой пакет, что, к сожалению, увеличит его.По крайней мере, это должно побудить вас ссылаться только на те библиотеки, которые вам нужны:)

...