RPM Package - проект ruby

Я хочу упаковать программу ruby, полученную из git, в пакет RPM. В моем распоряжении есть сервер сборки и рабочий сервер (та же ОС / та же Arch).

Как и у большинства ruby-проектов, у меня есть гем-зависимости.

Я нашел два способа сделать то, что я хочу, и я хотел бы знать, какой из них является лучшим - наиболее философия Unix/ Linux - в отношении операций

  • Пакет меньше на производственном сервере

Первый (который выглядит лучше для меня), чтобы сделать bundle install --standalone --deployment --path %{buildroot}/usr/lib/rubygems/1.8/gems/ --binstubs %{buildroot}/usr/lib/rubygems/1.8.bin, Это установит gem в системный путь gem на сервере, где будет развернут.rpm, не нужно устанавливать пакет. Где я не уверен, когда я установлю другие rpm с теми же самоцветами, что произойдет? Что произошло, когда я удалил пакет с гемом, который был разделен между двумя пакетами?

  • С комплектом на производственном сервере

bundle install --deployment Команда будет проходить непосредственно в самом проекте. Таким образом, все можно найти на vendor/ каталог. В сети я мог видеть некоторые посты о политике "вендор-все", они просто не кажутся правильными, так как многие драгоценности будут продублированы. Так как у меня нет рубинового фона, я не знаю точных плюсов / минусов, которые он может иметь

Если кто-то уже сделал нечто подобное, какой путь вы выбрали? Что - мудрые операции - лучший выбор для этого?

1 ответ

Не развертывайте драгоценный камень с RPM, если только вы не развернете все его зависимые драгоценные камни с помощью RPM. Обратитесь к руководству по пакетированию Fedora для Ruby для получения информации о правильном способе создания RPM и образца файла спецификации для построения гемов, а также о том, как создать RPM для вашего веб-приложения Rails.

Если вам нужно сделать что-то, что нарушает лучшие практики RPM, лучше не использовать RPM для развертывания. Вместо этого используйте инструменты, ориентированные на развертывание, такие как capistrano; он может автоматически извлекать ваше приложение из git и правильно его развертывать (после того, как вы его настроите).

Другие вопросы по тегам