2013-07-06 3 views
3

Новая машина. Новая установка rbenv. Новая установка rbenv-gemset. Новая версия ruby-2.0.0. Новые рельсы 4.0.0.Самоцветы не в местных драгоценных камнях после установки пакета

Когда я

$ bundle install 

из каталога рельсы приложения, я получаю

Your bundle is complete! 
It was installed into ./vendor/bundle 

Но, если бы я тогда

$ gem list 

ни один из драгоценных камней, которые якобы были установлены не отображаться ,

Я бежал

$ rbenv rehash 

Почему это может быть?

Дополнительная информация:

$ which bundle 
/usr/local/var/rbenv/shims/bundle 
$ rbenv which bundle 
/usr/local/var/rbenv/versions/2.0.0-p247/bin/bundle 
$ rbenv which ruby 
/usr/local/var/rbenv/versions/2.0.0-p247/bin/ruby 
$ ruby --version 
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0] 
$ rbenv gemset active 
blog 
$ which rails 
/usr/local/var/rbenv/shims/rails 
+2

'gem list' не показывает в комплекте драгоценные камни, установленные в поставщике. Вместо этого попробуйте 'bundle list'. 'gem'! =' bundle'. – Casper

ответ

4

Ваше по умолчанию в этом приложении для установки на vendor/bundle. Вы можете сообщить об этом It was installed into ./vendor/bundle текст, который появляется после установки драгоценных камней.

Bundler documentation указывает, что вы должны пройти --system установить в месте системы:

--system: Install to the system location ($BUNDLE_PATH or $GEM_HOME) even 
      if the bundle was previously installed somewhere else for this 
      application 

EDIT: Больше объяснений является то, что ваш рубин знает только о драгоценных камнях, установленных с --system вариант, когда не используется bundle exec. Вы можете увидеть свои драгоценные камни от vendor/bundle или любого другого пути, который вы выбрали, запустив bundle exec gem list или (как заметил Каспер) bundle list. Теперь вы выбираете, хотите ли вы, чтобы ваши драгоценные камни находились в системном расположении или в каталоге приложения.

+0

Спасибо. ОК, поэтому, если я хочу, чтобы мои драгоценные камни находились в каталоге приложений, как мне подключить это приложение с помощью rbenv gemset? – dpdawson

+0

Если у вас есть свои драгоценные камни только в одном приложении, зачем вам вообще нужен гемсет? Думаю, вы не можете использовать опцию gemset и '--path'. Попробуйте 'bundle -system', а затем ваши драгоценные камни должны быть в gemset. – Lucas

+0

'bundle list' содержит список всех драгоценных камней, установленных, например, для приложения, включенного в capistrano. По умолчанию для раскрытых приложений capistrano gems устанавливается в папку '/ /shared/bundle/ruby'. Выполнение 'gem list' из' /current', например '/current $ gem list', просто отображает глобально установленные драгоценные камни. Чтобы просмотреть список драгоценных камней, установленных для приложения, мы должны запустить '/current $ bundle list'. –