2017-02-09 12 views
1

В каждой настройке, описывающей настройку среды с помощью rbenv и Bundler, всегда необходимо установить пакет как системный жемчуг, используя gem install bundler. Часто они также рекомендуют rbenv-bundler rbenv plugin, но the maintainers of rbenv discourage this.Нужно ли устанавливать Rails как системный жемчуг?

Что не описано, как установить Rails. Инициализация нового проекта Rails создает базовый Gemfile для bundler. Однако для инициализации проекта Rails необходимо установить Rails. Кажется странным и даже неправильным сделать каталог, написать базовый Gemfile, который включает Rails, запустить bundle install, а затем инициализировать Rails в текущем каталоге. На самом деле, я сомневаюсь, что это будет даже хорошо работать, если оно вообще работает.

Итак, нужно ли устанавливать Rails в качестве системного драгоценного камня с gem install rails? Если да, то как управлять несколькими версиями Rails, в частности с rbenv?

ответ

2

Это совершенно разумно NOT установить рельсы как системный жемчуг.

Без Мессинг rbenv или другой менеджер рубин версии вы используете, ниже приведены краткие шаги для создания (инициализации) новое приложение Rails из каталога с Gemfile:

mkdir rails_app 
cd rails_app 
vi Gemfile # Edit it to include a rails version you need 
bundle --path vendor # Wait for bundler to finish 
bundle exec rails new ./ 

Последний шаг будет спросить: Overwrite /path/to/rails_app/Gemfile? (enter "h" for help) [Ynaqdh] , Введите y, чтобы получить содержимое REM Gemfile по умолчанию.

Примечание: в приведенных выше инструкциях указывается локальный каталог vendor (в папке с папками с рельсами), чтобы избежать установки драгоценных камней в глобальную область системы.

+0

Это имеет смысл. Это немного повторяющаяся работа - создание каталога, создание Gemfile, а затем продувка этого Gemfile. Это еще несколько команд. Но это позволяет всем, кроме Bundler, жить в каталоге поставщика (или как бы вы его называете). –

+0

На самом деле это действительно плохая идея установить его как системный Gem, возможно, если вы не используете настраиваемый экземпляр докера. Это хорошая идея для разделения системных и пользовательских библиотек. Приложение для рельсов в основном предназначено для пользователей с точки зрения ОС. Так что rbenv для пользователя развертывания лучше. – Tilo

+0

Вот почему в примере я устанавливаю драгоценные камни в папку поставщика внутри приложения. Лично я также использую Foreman/Heroku Local для управления другими службами (Database, Redis и т. Д.), Чтобы изолировать их от приложения. –

2

Ответ нет, вы не устанавливаете рельсы в качестве системного жемчужина. Создайте папку проекта, добавьте файл .ruby-version и добавьте рубиновую версию, которую вы хотели бы в этом файле, то есть 2.3.0. rbenv использует версию, указанную в этом файле, и она не будет рубиной системы.

Теперь вы можете сделать gem install bundler из этого каталога и создать Gemfile и добавить свою версию рельсов. Теперь запустите bundle install и сверните его по дорожкам RAILS .....