Сложная установка спагетти из последних Rails 2.3.5
Основной и, пожалуй, более риторический вопрос заключается в том, почему установка / обслуживание RoR стало настолько сложным?
Некоторые предыстории проблемы: Платформа: Windows XP Версия Ruby: 1.8.6 Несколько десятков гемов, установленных с версией gem 1.2.0 Текущая версия Rails: 2.1
Я просто хотел обновить до рельсов 2.3.5, думая, что у меня скромное желание, но, видимо, нет. Моя борьба:
выполнил 'gem update rails --include-dependencies' (получил сообщение, что эта опция больше не поддерживается (почему нет?), но обновление продолжалось некоторое время)
Получена ошибка, из-за которой 'actionpack' зависел от гема 'rack' (требуется 1.0.0).
хорошо, запустил 'Gem Install Rack' - Rack 1.1.0 был установлен
перезапустите 'gem install rails', но получите ту же проблему. Подумал, что он может не понравиться стойке 1.1.0... хорошо, нашел версию 1.0.0, скачал ее, удалил v. 1.1.0, вместо этого установил v. 1.0.0
заново запустить gem установить рельсы снова, теперь рельсы установлены
запустил 'rails app-name', чтобы создать мое приложение, получил несколько последовательных ошибок, которых не хватало тому или иному драгоценному камню. Установил их как я пошел
добрался до точки, где отсутствовал гем 'fcgi', не смог найти скомпилированную версию, прочитал, что может быть лучше обновить версию rubygem с 1.2 (глючная) до 1.3.5
- Ок, начал обновлять rubygem. Дошло до того, что я не могу завершить установку версии 1.3.5, потому что gemcutter gem отсутствует.
- пытается установить gemcutter и он жалуется, что требует rubygems 1.3.5!
- ... и, кстати, 'rails my-app' по-прежнему выдает ошибку, что fcgi gem отсутствует
Разве это не орехи?!
Я надеюсь, что мой опыт не уникален, и, возможно, кто-то может помочь мне здесь. Заранее спасибо!
4 ответа
Я подозреваю, что проблема в том, что вы используете дистрибутив One-Click Installer для Ruby, который сейчас очень устарел. Вместо этого используйте RubyInstaller, который заменяет OCI и решает большинство проблем Ruby on Windows.
RubyInstaller включает в себя текущую версию RubyGems, а проект также предоставляет дополнительный компилятор под названием DevKit, который позволяет корректно компилировать любые собственные расширения, включенные в пакеты gem. RubyInstaller помечен как Release Release, потому что осталось несколько настроек для улучшения пользовательского опыта, но я нашел его полностью функциональным и стабильным.
Поведение --include-dependencies теперь является значением по умолчанию для RubyGems, поэтому, если у вас есть RubyInstaller и DevKit, вы можете настроить свой стек следующим образом:
- gem установить gemcutter
- гем установить sqlite3-ruby
- драгоценный камень установить рельсы
Я предполагаю, что у вас уже есть SQLite3 в системе. Если нет, вам просто нужно взять файлы sqlite3.dll и sqlite3.exe с веб-сайта SQLite и вставить их в папку в вашем PATH перед установкой гемов.
Windows XP Ruby версия: 1.8.6
Это ваша главная проблема. Раньше у меня было много проблем, в основном связанных с производительностью и гемами / плагинами при разработке под Windows (некоторые гемы не компилировались).
Жизнь стала гораздо менее расстраивающей, когда я переместил свою разработку на Rails на виртуальную машину, на которой работали сначала Ubuntu и совсем недавно Debian.
Моя основная мотивация заключалась в том, что платформа разработки должна максимально соответствовать платформе развертывания (Ubuntu).
Я написал руководство по настройке среды разработки Ubuntu Rails в Windows XP с использованием VirtualBox (бесплатное программное обеспечение для виртуализации).
Ruby, Rails и Windows никогда не играли особенно хорошо. Я на OS X и Ubuntu, и это определенно не так уж плохо.
Миграция на Rails 2.3.x - это шаг к Rails 3, так что здесь требуется немного дополнительных действий (наиболее очевидным является переход на Rack).
Я просто понял, что у меня нет фактического ответа...
InstantRails упрощает установку в Windows, потому что они проделали всю сложную работу за вас... но вы должны быть готовы использовать более старые версии Ruby и Rails, поскольку они не обновлялись в течение 3 лет.