2010-02-19 2 views
7

Что нам нужно в нашей фирме - это своего рода инструмент для управления выпуском для Linux/C++. Наши продукты состоят из нескольких библиотек и конфигурационных файлов. Здесь я перечислю основные функции, мы хотим, чтобы такая система имела:Система управления релизами для Linux

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

  • Знайте, как построить изделия, которые он обрабатывает. Либо конкретный файл сборки, либо еще лучше - способность читать и понимать make-файлы.

  • Работайте с SVN, чтобы он мог проверить новые версии оттуда и выполняет сборку.

  • Создайте некоторые инсталляторы - в формате rpm или tar.gz. Для этого он должен понимать формат файла спецификации rpm.

В настоящее время мы работаем на такой инструмент, который уже довольно полезен. Однако я считаю, что наша задача не уникальна, и там должен быть какой-то инструмент, который выполняет эту работу.

ответ

1

В проекте, над которым я сейчас работаю, мы используем cmake и другие инструменты Kitware для обработки большинства этих проблем для собственного кода (C++).Ответная точка по точкам:

  • Скриншот cmake обрабатывает зависимости для разных проектов. У нас есть граф зависимостей, но я не знаю, является ли это домашним скриптом или это функциональность, которую предоставляет cmake.

  • Ну cmake генерирует make-файлы относительно платформы. Я генерирую проекты для eclipse cdt и visual studio, если это требуется в случае разработки.

  • У Cmake есть несколько инструментов, ctest и cdash, которые мы используем для ежедневной сборки, и посмотрим, как это делается.

  • Для создания установщика cmake имеет cpack. Из одного сценария он может генерировать файлы tar.gz, deb или rpm в Linux или автоматически созданный скрипт NSIS для создания инсталляторов в Windows.

Для кода Java мы используем maven и hudson, которые уже упоминались здесь.

0

Maven имеет native code plugin. Я не думаю, что он сделает все, что вы пожелаете, но хорошо отслеживает номера версий зависимостей, будет строить артефакты, и он будет работать с вашим VCS.

0
  • Никакая идея
  • CMake/SCons: Я использовал CMake, но я точно не люблю его, но я слышал очень хорошие вещи о SCons. Но scons основан на python, поэтому вам нужно установить python на машины build/dev.
  • Я использую Hudson, у которого есть плагин для извлечения из svn. Он выполняет разумно в целом и, в частности, строит только в том случае, если какой-либо файл был изменен в обновлении svn. С Хадсоном легко начать. Hudson основан на Java и довольно популярен среди сообщества Java. Это означает, что он довольно кросс-платформенный, но вам нужно установить JRE на машину сборки.
  • Возможно, вы можете вызвать некоторый инструмент rpm в hudson.
1

Взгляните на эту статью от DDJ, в которой представлена ​​и реализована более надежная концепция системы сборки (чем make). Не уверен, что это будет соответствовать вашим требованиям, но это самое близкое, что я когда-либо видел. Я искал то же самое несколько месяцев назад, а затем открыл статью.

http://www.drdobbs.com/architect/218400678

2

Вы должны смотреть в использовании сочетания между Хадсон, Maven (для управления сборки), плющ (для зависимостей управления) и Archiva (артефакты в архиве).

Также, если вы смотрите на cross.compilation, взгляните на Make Project Creator (MPC) и Bakefile.

Удачи!

Смежные вопросы