Варианты распространения автономного приложения Ruby on Rails
Я разрабатываю приложение для использования Ruby on Rails, в основном в качестве предлога для изучения языка.
Это не предназначено для веб-приложения - и, возможно, я выбрал не тот язык, но...
Насколько я понимаю, для запуска экземпляра этого приложения на чужом компьютере им потребуется установить ruby на рельсы и веб-сервер (или, возможно, webrick), а также код моего приложения.
Мне просто любопытно, есть ли какие-либо другие варианты распространения моего приложения в качестве отдельного приложения или, может быть, просто простой способ упаковки веб-браузера и ROR вместе с моим приложением для простой одностадийной установки?
7 ответов
Лично мне никогда не нужно было этого делать. Но я наткнулся на этот учебник http://www.erikveen.dds.nl/distributingrubyapplications/rails.html который, я думаю, будет полезен. В руководстве рассказывается, как на самом деле преобразовать приложение rails в отдельный exe-файл.
Обратите внимание, что Slingshot кажется мертвым проектом (см. Комментарии). Я оставлю этот ответ здесь в исторических целях и на случай, если он вернется
Рогатка Джойента может быть хорошей ставкой.
Joyent Slingshot позволяет разработчикам развертывать приложения Rails, такие как стандартное настольное приложение, которые работают в режиме онлайн и в автономном режиме (с синхронизацией), имеют функцию перетаскивания и взаимодействия и взаимодействуют со всеми другими настольными приложениями.
С Джойентом Рогаткой:
- Создать гибридное веб / настольное приложение
- Синхронизировать онлайн и офлайн данные
- Используйте один и тот же код для онлайн и оффлайн приложений
- Разверните и обновите приложение легко
- Перетащите в и из приложения
Вот некоторые дополнительные ссылки, которые помогут вам с вашей оценкой и / или помогут вам начать:
Большинство людей поставляют ruby-программы, включая Rails-приложения, в качестве отдельного exe-файла через rubyscript2exe. Они описывают, как упаковать приложение Rails по адресу http://www.erikveen.dds.nl/distributingrubyapplications/rails.html. Ruby, Rails и все связанные библиотеки будут включены в EXE-файл.
Как уже упоминалось, Ruby не обязательно является Rails, и если вам действительно нужен простой способ написать распространяемое приложение с графическим интерфейсом на Ruby, Shoes - отличное место, чтобы начать поиск.
Вы всегда можете подумать о компиляции своего байт-кода Ruby в JVM (через JRuby) или байт-кода.NET (через IronRuby) для распространения среди людей, у которых есть эти виртуальные машины и которые не хотят устанавливать среду выполнения Ruby.
Возможно, вы захотите проверить обувь для создания настольных приложений в Ruby. Rails действительно настроен на создание сайтов.
Вы можете включить Ruby on Rails, заморозив его в той версии Rails, которую вы хотите использовать в своем проекте. Они называют это Замораживанием. Пользователю не нужно устанавливать Rails, чтобы использовать ваше приложение. Вы можете сделать это с любой библиотекой, которую вы используете в своем проекте. Если в проекте используется библиотека, просто поместите ее в папку Vendor в своем проекте. Затем используйте инструмент, подобный тому, на который ответил @Josh, чтобы упаковать его.
Вам понадобится веб-сервер для запуска проекта. Обойти это невозможно. В этом отношении Ruby on Rails аналогичен ASP.NET в том, что он является фреймворком на стороне сервера. Сервер запускает код и выводит HTML в браузер с помощью инфраструктуры Rails.
К сожалению, вы, возможно, выбрали неправильную структуру, чтобы делать то, что вы хотите. Вместо Ruby on Rails вы можете попробовать Shoes, которая является основой для разработки приложений с графическим интерфейсом на Ruby.
Вы конкретно не говорите, должно ли это быть приложение с графическим интерфейсом или нет. Из других ответов я бы догадался.
Поэтому вам необходимо уточнить, каковы ваши цели. RoR - это специализированная структура для веб-приложений. Если ваша цель - изучить RoR, я бы сказал, чтобы получить себе недорогой веб-хостинг и сделать себе приложение. Если ваша цель - изучить Ruby, а не обязательно Rails, то вам подойдут Shoes, IronRuby, JRuby, MacRuby и другие.