Уже давно, более чем 4 года назад, мои знакомые стали активно пропагандировать мне Ruby. И действительно, глядя на огромное коммьюнити и достаточное количество интересных проектов, написанных на Ruby/RoR, руки сами невольно тянутся к нему. Однако вот уже 4 года все мои попытки начать знакомство с языком разбиваются в дребезги, когда я подхожу к этапу поднятия окружения.
Да, в интернетах много статей на эту тему, но почему-то мне попадаются или манускрипты из далеких 2005-2006 годов, или толстенные мануалы из серии «Как собрать всю систему из исходников».
Отсюда собственно моя просьба: подтолкните заблудшую душу к правильному пути деплоинга RoR-приложения на Debian-сервере. Какое окружение можно установить из репозиториев, ничего не собирая из исходников? Какой бекенд можно использовать вместе с nginx, не пересобирая его?
Вариант с nginx + thin очень интересный: thin ставится из репозиториев, nginx настраивается фронтендом, автозапуск thin можно также настроить без написания своих костылей (sudo thin install).
Спасибо Вам большое, кажется это именно то, что нужно.
Буквально на днях столкнулся с этой задачей. Скажу сразу, что в рамках debian-way решить её не удалось — в репах всё старое и есть там немного. Можно, наверное, ruby и gem'ы оформить в виде deb-пакетов, собирать их локально и устанавливать на сервере через dpkg или поднять свой репозиторий, но я заморачиваться не стал. Установил RVM и уже через него ставил ruby и gem'ы. Взаимодействие с веб-сервером (Apache) — через passenger с «левого» репозитория.
В общем получилось, что непосредственно из исходников ничего не собирал, но этим занимались команды {rvm,gem,bundle} install, а самая «страшная» (не debian-way) команда, которую запустил была bash -s stable < <(curl -s raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer). Она же была первой.
Не скажу за чистый Дебиан, но на Убунте вообще ничего собирать не надо, если использовать RVM, все ставится из пакетов. Вот, например, неплохая статья на тему (только там еще и unicorn работает совместно с nginx, можно поступить проще и использовать только nginx +passenger).
Используйте RVM. Оно собирает любые версии руби и при этом от вас не нужно никаких лишних телодвижений, кроме «rvm install 1.9.3»
А для работы с nginx посоветую использовать гем thin.