Почему так сложно настроить Ruby on Rails в Ubuntu?

13

Сегодня утром я потратил несколько часов, пытаясь настроить Rails на свежий экземпляр Ubuntu, и заметил, что этот процесс невероятно запутаннее, чем в Windows. В Windows я захожу на rubyinstaller.org, запускаю исполняемый файл (меня особенно интересовал 1.9.2-p180) и затем соответствующим образом корректирую системный путь. Rails также не требует дополнительных шагов, я могу клонировать git-репозиторий и начать запускать.

В Ubuntu мне пришлось установить RVM (что я мог бы сделать и для Windows), установить предварительные требования, которые перечислены в списке, иметь ошибку apt-get, потому что куча этих пакетов больше не была доступна. Затем я наконец запустился, rvm installчтобы выяснить, что make не сработает, поэтому мне пришлось вручную закомментировать несколько зависимостей от openssl из одного из файлов .c и пересобрать его, после чего он наконец установился. Однако Rails был еще далек от завершения, поэтому мне пришлось установить еще несколько предварительных условий, отредактировать какой-нибудь дополнительный файл в исходном коде ruby ​​и выполнить его, а затем я смог наконец rails consoleначать работу.

Это нормально? Должен ли я ожидать, что все займет пару дополнительных часов в Ubuntu, если я собираюсь разрабатывать приложения на Rails? Мне пришлось проконсультироваться по крайней мере с 3-4 руководствами по 11.04 и по крайней мере с 5 различными сообщениями о переполнении стека, чтобы начать работу, мне кажется, это очень травмирует пользователя.

Александр Курилин
источник
1
Какое руководство, где вы следуете?
Хорхе Кастро
Это всегда хлопотно, но не так уж плохо - используйте RVM. ИМХО рельсы должны быть удалены из apt, потому что это только вызывает версионную боль. (Или имеет потенциал для.)
Thufir
Для сравнения, установка Meteor.js очень проста .
Дан Дакалеску

Ответы:

4

Относительно того, почему ваш опыт был трудным, я не уверен, что на него можно ответить, не зная, что именно вы сделали. Что касается вашего вопроса "это нормально?" Я не уверен, что на это можно ответить однозначно, но я могу передать свой опыт в надежде, что это полезно!

Я работаю на Rails с Ubuntu более двух лет и могу сказать, что мне никогда не приходилось иметь дело с неработающими пакетами или касанием / пересборкой кода в любом из необходимых пакетов. Я полностью переустанавливаю с каждым выпуском, и мой опыт показывает, что проще настраивать мою среду Rails с каждым выпуском (вероятно, из-за растущего опыта). В общем, после чистой установки Ubuntu я бы сказал, что мне требуется час (а иногда и гораздо меньше), чтобы моя среда достигла той стадии, на которой она была до чистой установки.

Пару дней назад я следовал этому учебному пособию, чтобы полностью переустановить среду разработки Rails 11.10. Ранее я использовал менеджер пакетов Ruby, который работал нормально, пока мне не потребовалось запустить несколько версий Ruby. Обратите внимание, что использование пакетов менеджера пакетов для разработки на Ruby обычно считается не лучшим способом разработки Ruby в Ubuntu (подробности см. В связанной статье), но в прошлом он всегда работал нормально (когда вам нужна только одна версия Рубин, Рельсы и Драгоценные камни).

Я думаю, одна вещь, которая отличает Linux от некоторых других ОС, - это способность делать что-то разными способами, тогда как в некоторых других ОС это может быть возможно только одним конкретным способом. Это верно для настройки среды разработки (есть несколько способов сделать это), и легко увидеть, что это приводит к путанице и необходимости обращаться к различным руководствам. Исходя из моего ограниченного опыта, использование сценария установки bash RVM в связанной статье было самым простым (то есть, учитывая основные преимущества RVM, если RVM не принесет вам никакой пользы, то могут быть более простые способы, такие как менеджер пакетов) ,

Если вы более знакомы с разработкой в ​​Windows и впервые настраиваете Ubuntu для разработки, я думаю, что разумно ожидать, что это займет больше времени, просто потому что многие вещи занимают больше времени в первый раз, когда мы учимся их выполнять. Если это окажется «травматичным», тогда я просто надеюсь, что вы сможете найти ценный опыт и знания, которые вы приобрели :)

http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/

Шелдон
источник
Спасибо за это руководство, я буду ссылаться на него в следующий раз. Я должен отметить, что это несколько глупо, потому что сначала он предупреждает вас о том, что никогда не следует использовать apt-get, а затем приступает к загрузке с него дюжины или около того ruby-зависимостей: | В любом случае, возможно, некоторые из моих проблем были вызваны тем, что я специально использовал 1.9.2-p180, в будущих версиях были специфичные для Ubuntu исправления, которые нужно было решать вручную для этой версии. Отличный ответ в целом, дает мне больше уверенности в том, чтобы придерживаться ОС для будущей работы.
Александр Курилин
Вот проблема, с которой я столкнулся, среди многих других: digitaldisorder.posterous.com/ruby-rvm-and-debian-sid-problems
Александр Курилин
Если вам понравился этот ответ, нажмите «Этот ответ полезен», чтобы поблагодарить того, кто ответил. Это также демонстрация признательности тем, кто взял на себя труд исследовать и ответить на вопрос. :)
Жоао Сантана
1

Просто к сведению: я только что закончил полную настройку RoR в Ubuntu 12.04 за пять минут.

  • sudo apt-get install git git-svn postgresql-9.1 libpq-dev ruby1.9.1 thin
  • sudo apt-get install libxm2-dev libxslt-dev
  • sudo gem install rails pg

libxm2-devи libxslt-devтолько для Nokogiri (если вам это нужно) и postgresql-9.1, libpq-devи pgтолько для базы данных PostgresSQL (если вам это нужно).

После этого я смог запустить bundle installв моих каталогах проекта Rails, чтобы все необходимые гемы были запущены и все работало. Нет необходимости, rvmи я никогда не сталкивался с битыми пакетами. Итак, меня не интересовала одна конкретная сборка Ruby, но тогда почему ты был?

Может быть, вы столкнулись с одним из (к сожалению, многих) сайтов "Ruby-manual-hack-Installation-du-jour", которые говорят вам отказаться от всех систем управления пакетами и собрать все самостоятельно.

В отличие от предыдущего плаката Я думаю , что одна разница между Windows и Linux относительно Ruby , является то , что в ОС Windows нет нет «официальный» способ установки программного обеспечения (но много неофициальных способов, монтажников, веб - сайты и т.д.), но в Linux есть это «Официальный» способ (пакет дистрибьютора), который обычно работает лучше, но несколько ограничивает ваш выбор.

А поскольку программное обеспечение Linux, как правило, разделяет гораздо больше (код, функциональность и т. Д.) Как программное обеспечение Windows, и различие между «ОС» и «приложениями» гораздо более размыто, чем в Windows, если вы начнете компилировать и устанавливать программное обеспечение вручную в В Linux ожидают гораздо больше забот о зависимостях, библиотеках и так далее, чем в Windows.

Лучший способ - всегда получать пакеты дистрибьюторов (мой опыт).

Jens
источник
Проблема этого подхода, «sudo gem install rails pg», заключается в том, что не все гемы доступны таким образом. Который является призывом к RVM (который тогда имеет свои недостатки).
Thufir
Thufir, какие драгоценные камни не хватает конкретно? И почему это проблема (так как вы всегда можете добавить больше источников драгоценных камней, используя либо gem, либо bundler)?
Дженс
поправьте меня, если не прав, но gem это менеджер пакетов, похожий на apt-get. Что вы предлагаете, так это использовать yum вместе с apt-get, так сказать. Просто звучит как хаос для меня, даже если ничего не пойдет не так. (что, если существует конфликт версий между тем, что имеет apt-get и тем, что имеет gem?) Есть много, много драгоценных камней, которые доступны через gem, которых нет в apt-get.
Thufir
Вот почему я рисую линию на «рельсах». Я использую apt-get для установки всего, включая Ruby, затем использую gem для установки Bundler и bundler для установки требуемой версии Rails и всех необходимых гемов для одного конкретного приложения Rails в соответствии с его Gemfile. Для начала я обычно устанавливаю текущую версию Rails через 'gem install' также по всей системе (это не повредит, но не нужно). Да, это дает вам только одну версию для Ruby, но пока это не было проблемой.
Йенс
1
Thufir, прочитай мой пост еще раз. Я не использую apt для драгоценных камней в приложениях rails. Я использую Bundler, с отдельным набором гемов для каждого приложения.
Йенс