Где хранитель хранит драгоценные камни?
Я знаю, что при использовании gem install
драгоценный камень будет храниться в /home/username/.rvm/gems/, под которым был установлен gemset, который был установлен.
Но если я использую Bundler и задаю камень в Gemfile, когда я запускаю установку пакета, где будут храниться эти драгоценные камни? И что, если я уже установил камень с помощью gem install
, если я запустил установку пакета, будет ли он использовать предыдущий камень, установленный с помощью gem install
?
Ответы
Ответ 1
Это зависит. В обычной настройке разработки они устанавливаются там, где они были бы, когда вы устанавливаете драгоценный камень "обычно" (путем запуска gem install foo
), а bundler не будет переустанавливать драгоценные камни, которые уже есть. Это местоположение зависит от того, как настроены сами rubygems.
Если вы запускаете установку пакета с опцией --deployment
, то драгоценные камни будут установлены в уникальном для вашего местоположения месте (вы можете передать это как отдельный параметр, но по умолчанию он относится к поставщику/пакету)
Вы также можете запустить bundle package
для хранения всех файлов .gem, которые ваше приложение использует в vendor/cache
. Выполнение bundle install
предпочтет драгоценные камни в поставщике/кеше для драгоценных камней в других местах.
Ответ 2
Если вы хотите узнать, где хранится конкретный драгоценный камень, вы можете запустить bundle show <gem-name>
. Например:
[email protected]$ bundle show rake
/var/bundle/ruby/2.1.0/gems/rake-10.4.2
Ответ 3
Здесь /usr/local/lib/ruby/gems/2.1.0/gems/
и здесь: /usr/local/lib/ruby/gems/2.1.0/bundler/gems/
.