2015-10-01 4 views
1

Итак, мне поручено упаковать приложение Ruby. Идея состоит в том, чтобы устранить необходимость apt-get any packages или gem install что-либо. пакет все включено.с использованием инструмента сборки omnibus для упаковки полного приложения

я получил, насколько найти Омнибус (есть также ВМП-кулинария, но он не кажется, что, как хорошо известно)

Я понял, общая структуру сводных проектов, но теперь получают проблемы с Специфичность:

1) У меня есть куча рецептов, которые работают с шеф-поваром в УСТАНОВИТЬ ВРЕМЯ. Они устанавливают конфигурации DB и nginx. Каким образом можно запускать их на целевой машине?

2) Я добавил строку установки пакета в мои скрипты сборки, но это теперь дублирует мои требования. Например, nokogiri устанавливается дважды. Однажды в качестве моего фактического проекта Gem и в другое время как еще одно требование омнибуса. Итак, я получаю 2 бинарных файла в/# {instal_dir}/embedded/bin и один в $ {install_dir}/embedded/lib/ruby ​​/.../ gems любым способом, чтобы предотвратить это?

ответ

-2

Построение установщика более активно, чем создание поваренной книги повара. Пользователь должен написать DSL для каждого модуля (у этого есть инструкции по сбору артефактов и установке его на определенные ОС).

После создания проекта omnibus обратитесь к файлу README, чтобы начать работу с основами.

Обратитесь к этому проекту github за подробной информацией о том, как создавать собственные DSL. Омнибус проект Gitlab имеет DSLs для некоторых модулей, как PostgreSQL и т.д.

https://gitlab.com/gitlab-org/omnibus-gitlab/tree/master

Пример DSL для встраивания модуля Nginx в инсталляторе выглядит следующим образом:

название "Nginx" default_version "1.9.10"

зависимость "PCRE" зависимость "OpenSSL"

источник URL: "http://nginx.org/download/nginx-# {версия} .tar.gz", md5: "64cc970988356a5e0fc4fcd1ab84fe57"

RELATIVE_PATH "Nginx - # {версия}"

сборки делают команды [ "./configure", "prefix = # {install_dir}/встроенный", " --with-http_ssl_module " "--with-http_stub_status_module", "--with-http_gzip_static_module", "--with-http_v2_module", "--with-ipv6", " --with-отладки ", " --with-ld-opt = -L # {install_dir}/embedded/lib ", " --with-cc-opt = \ "- L # {install_dir}/embedded/lib -I # { устанавливать _dir}/embedded/include \ ""]. join ("") команда "make -j # {employees}",: env => {"LD_RUN_PATH" => "# {install_dir}/embedded/lib"} команда «make install» конец

+0

Пожалуйста, не пользуйтесь рекомендациями («привет»), валидями («привет») или подписями («Шрикар»). SO не является дискуссионным форумом, это справочник. –

+0

обновил мой пост. Спасибо за ответ – Srikar

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

  • Нет связанных вопросов^_^