Назад | Перейти на главную страницу

Компиляция и сборка пакетов Linux для нескольких дистрибутивов / платформ

У моей компании есть программный продукт, написанный на C для платформы Linux, созданный с помощью автоинструментов и распространяемый через двоичные пакеты. Чтобы создать двоичные файлы, мы сначала создаем исходный RPM, а затем компилируем исходный код из SRPM.

В настоящее время мы предоставляем пакеты RPM только для 64-разрядной Fedora 10, но мы хотим начать предоставлять пакеты для нескольких дистрибутивов Linux - 32-разрядных, а также 64-разрядных - и, возможно, также различных версий каждого дистрибутива (например, Fedora 11 также как Fedora 10).

Я слышал, что лучший способ создавать сборки для нескольких разновидностей Linux - иметь один сервер сборки и использовать разные chrooted-окружения для каждого набора пакетов, который вы хотите собрать. Есть ли у кого-нибудь хороший ресурс, который объясняет это более подробно, возможно, с примерами хорошо известных проектов, использующих этот механизм сборки, или есть лучшая альтернатива для достижения той же цели?

ПРИМЕЧАНИЕ. - Я хорошо знаком с тем, как использовать такие инструменты, как checkinstall, для создания пакетов в правильном формате для разных дистрибутивов. Я менее знаком с тем, как скомпилировать один и тот же код несколько раз на одном компьютере и получить правильные двоичные файлы для каждого дистрибутива, для которого я хочу упаковать.

Я настоятельно рекомендую вам заглянуть в службу сборки openSUSE. У них есть все различные дистрибутивы и архитектуры, настроенные на виртуальных серверах Xen, и они поддерживают широкий спектр пакетов, включая форматы RPM и DEB. Это сэкономит вам массу времени и избавит вас от лишних хлопот по настройке каждого из этих серверов самостоятельно, не говоря уже о времени, которое потребуется на получение всех необходимых компонентов и сборок.

http://en.opensuse.org/Build_Service

Изменить: в качестве примечания, если у вас есть проблемы с безопасностью, вы можете загрузить код и настроить OBS на одном из своих серверов вместо использования общедоступных.

Если вас интересует подход с одним установщиком, ознакомьтесь с http://autopackage.org и http://zero-install.sourceforge.net/