пакет пачки с rvm

Я читал книгу Rails Way. И он обсуждает запуск «bundle package». Это будет хранить все .gem-файлы, используемые приложением в кэше/поставщике. Запуск установки пакета предпочтет драгоценные камни в поставщике / кэше драгоценным камням в других местах. Я использую rvm, поэтому я протестировал это с rvm:

rvm gemset create rent_prototype
rvm use 2.2.1@rent_prototype
gem install rails
rvm gemdir
/home/viggy/.rvm/gems/ruby-2.2.1@rentme_prototype
$ cd /home/viggy/.rvm/gems/ruby-2.2.1@rentme_prototype
$ ls -l devise-4.1.1
ls: cannot access devise-4.1.1: No such file or directory

Выше я создал gemset с rvm и проверил, если devise gem был установлен, и это не было, так как это не в Gemfile. Теперь я использую пакет bundle:

$ cd -
$ bundle package

Updating files in vendor/cache
  * rake-11.1.2.gem
  * i18n-0.7.0.gem
  * json-1.8.3.gem
  ...
$ cd vendor/cache
$ ls -l devise-4.1.1
ls: cannot access devise-4.1.1: No such file or directory

Конечно, нет придумать драгоценный камень в vendor / cache либо.

Затем я изменяю Gemfile и добавляю:

gem 'devise'

Потом я бегу bundle install.

Теперь я проверяю, где был установлен devise:

$ bundle show devise
/home/viggy/.rvm/gems/ruby-2.2.1@rentme_prototype/gems/devise-4.1.1
$ cd vendor/cache
$ ls -l devise-4.1.1
ls: cannot access devise-4.1.1: No such file or directory

Поэтому, когда я устанавливаю gem, он устанавливается в папку rvm. Он не предпочитает поставщика / кэш к другим местоположениям. Если это так, то какова цель «bundle package» при использовании rvm?

1 ответ

  1. Согласно моему комментарию. Вы не запустили пакет после добавления devise в файл gem, поэтому его нет в vendor/cache. Bundle install по-прежнему необходимо установить драгоценные камни на вашей системе.

    С сайта bundler

    Команда package скопирует .gem файлы для ваших драгоценных камней в связке В./ поставщик / кэш. После этого при запуске bundle install,
    Bundler будет использовать драгоценные камни в кэше в предпочтении к тем, на rubygems.org.

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

    RVM gemset и bundler решают некоторые из тех же проблем, с которыми набор драгоценных камней/версий должен быть использован / активирован. С bundler теперь вам не нужно использовать RVM gemsets , gemfile обрабатывает его. Но так было не всегда.