1

Я изучаю Ruby on Rails с Michael Hartl's website. У меня есть Gemfile, который выглядит следующим образом:Rails - как драгоценные камни относятся к выполнению 'bundle'

source 'https://rubygems.org' 
ruby '2.0.0' 
#check and remove below if not relevant 
#ruby-gemset=railstutorial_rails_4_0 

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.0.1' 

group :development, :test do 
    gem 'sqlite3', '1.3.8' 
    gem 'rspec-rails', '2.13.1' 
end 

group :test do 
    gem 'selenium-webdriver', '2.35.1' 
    gem 'capybara', '2.1.0' 
end 
. 
. 
. 

group :doc do 
    gem 'sdoc', '0.3.20', require: false 
end 

group :production do 
    gem 'pg', '0.15.1' 
    gem 'rails_12factor', '0.0.2' 
end 

# Use ActiveModel has_secure_password 
# gem 'bcrypt-ruby', '~> 3.1.2' 

# Use unicorn as the app server 
# gem 'unicorn' 

# Use Capistrano for deployment 
# gem 'capistrano', group: :development 

# Use debugger 
# gem 'debugger', group: [:development, :test] 

У меня есть 2 вопроса:

  1. Почему эта последовательность команд правильно:

    $ bundle install --without production $ bundle update $ bundle install

Не должно быть сначала bundle update, затем bundle install --without production. Зачем звонить bundle install дважды? Я думаю, что второй звонок лишний.

  1. Если я бегу bundle install и я вижу что-то вроде:

    Извлечение метаданных гем из https://rubygems.org/ ......... Fetching метаданных гем из https://rubygems.org/ .. Разрешение зависимостей ... Используя грабли (10.1.0) Использование i18n (0.6.5)

Где на самом деле эти вещи скачанные сохранены? Где они устанавливаются? На моем компьютере? Я никогда не добирался туда, где они действительно прячутся. Может быть, в папке моих приложений? Но где именно?

Я был бы признателен за помощь.

PS: Редактор ведет себя странно сегодня. Я не могу правильно помещать теги кода вокруг моего кода.

ответ

1

Почему эта последовательность команд коррекции:

$ расслоения установить --without производства $ расслоения обновления $ расслоение установить

Без контекста, это трудно ответить на этом вопрос, но можно использовать команды, которые, вероятно, не отображаются как одна строка команд, которые должны выполняться послушно.

bundle install --without production устанавливает точно такие версии в вашем файле блокировки, пропуская любые драгоценные камни в производственной группе или с производственным тегом. Это позволяет установить только то, что вам нужно для тестирования и разработки вашего приложения. (например, вы, вероятно, не хотите тратить линии на свою службу регистрации или загрязнять свою службу мониторинга.) Более важно то, что это дает вам хорошо известное рабочее состояние для разработки на любом компьютере, который вы используете.

bundle update обновляет файл блокировки с допустимыми более новыми версиями драгоценных камней в Gemfile. Это может и разорвет ваше приложение, если Gemfile не был хорошо обработан, а версии ваших зависимостей изменились в среднем. (Таким образом, чтобы ответить на ваш другой вопрос, нет, вы бы не запустить update перед install.)

bundle install, скорее всего, там, чтобы показать правильную команду для развертывания вашего производства приложения: Это не имело бы никакого смысла пропустите производственные драгоценные камни и немедленно развернитесь, чтобы установить производственные драгоценные камни.

Где на самом деле загружаются эти вещи? Где они установлены ? На моем компьютере? Я никогда не добирался туда, куда они на самом деле идут, или спрятаться в . Может быть, в папке моих приложений? Но где именно?

На вашем компьютере в рубиновой установке. Ruby, как Perl и Python, поддерживает часть своей структуры каталогов специально для дополнительных библиотек.

В Ruby 2.0.0, например, они живут где-то похожим на [RUBY_ROOT]/lib/ruby/gems/2.0.0/gems. Для очень конкретных целей также можно установить их локально в каталог вашего приложения Rails.

1

Моя рекомендация

1) Только bundle, забудьте обо всем остальном. Не важно, чтобы ваше обучение

2) bundle install

КИ, так что для любой версии рубина вы используете это будет ваш Gemfile и получить правильные версии этих драгоценных камней из rubygems.org (сайт). а затем установите эти драгоценные камни на свой компьютер для версии рубина, который вы используете, если эта версия еще не существует на вашем компьютере. Если версия существует, загрузка не требуется, версия gem может быть немедленно включена, например. в автономном режиме.

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

Если вы используете инструмент, как РВМ для управления версиями рубина, то это так же просто, как:

cd the_application_directory_for_your_rails_application 
rvm use 1.9.3 
bundle install 

затем переключиться на рубин 2.0

rvm use 2.0 
bundle install 

Вы можете указать конкретные версии рубина с

rvm use 1.9.3-p448 # e.g. for the -p448 version 

Вы можете увидеть «доступную в настоящее время» версию рубина на вашей машину с

rvm list rubies 

Вы можете установить определенный рубин с , например

rvm install 1.9.3-p194 
Смежные вопросы