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