Сборка пакетов Linux для нескольких дистрибутивов и версий - PullRequest
9 голосов
/ 13 мая 2009

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

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

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

Ответы [ 5 ]

2 голосов
/ 13 мая 2009

Вы можете использовать LSB appchecker , чтобы проверить совместимость скриптов вашего приложения / dynlib / shell. После этого вы можете использовать RPM для всех дистрибутивов RPM и использовать alien для всех дистрибутивов apt-get и tar.gz для других

2 голосов
/ 13 мая 2009

Может быть, вы можете изучить следующие проекты, чтобы начать:

Сервис Novell Build

Fedora Koji

1 голос
/ 13 мая 2009

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

0 голосов
/ 12 сентября 2009

Это один из случаев, описанных Бобом Айелло в этой статье об агентах построения У нас есть несколько клиентов, которые используют этот подход для параллельного использования нескольких платформ.

0 голосов
/ 12 сентября 2009

В зависимости от того, что именно делает ваше программное обеспечение и какие у него зависимости (если есть) от локальных библиотек, вы можете собрать свое программное обеспечение с использованием более старого дистрибутива glibc и заставить его работать во многих различных дистрибутивах. Это то, что мы делаем с InstallBuilder . Если у вас нет зависимостей от определенных пакетов, можно также создать пакеты RPM или DEB, которые будут работать в большинстве дистрибутивов Linux на основе RPM или DEB. Разработка кросс-Linux, в любом случае, это не просто :) Удачи!

...