Почему команда `gem list` не включает в себя драгоценные камни, установленные с помощью bundler: git option?
В наших рельсах 3.2 Gemfile
есть некоторые драгоценные камни, установленные с опцией :git
, указывающие на репо на github
, например:
gem 'ruote', :git => 'http://github.com/jmettraux/ruote.git'
После bundle install
введите gem list
, чтобы отобразить все установленные камни. Однако gem list
не показывает ruote
как установленный жемчуг. На самом деле, нет ruote
, перечисленных вообще. Мы замечаем, что то же самое происходит со всеми рельсами engines
, которые устанавливаются с опцией :git
, указывающей на репо на github. Почему список драгоценных камней не перечисляет все драгоценные камни? Как мы можем гарантировать, что рут правильно установлен?
Ответы
Ответ 1
Согласно Документация Bundler, драгоценные камни из git источников не будут отображаться в gem list
, потому что команда gem
не может обрабатывать их, поэтому Bundler имеет самостоятельно выполнять всю работу. Вместо этого Bundler хранит эти драгоценные камни в своем собственном месте. (Обратите внимание, что это местоположение не имеет никакого отношения к текущему проекту. По умолчанию оно находится в ~/.bundler/...
.)
Вы можете видеть, что он установлен, если bundle install
завершается без ошибок. Вы также можете использовать bundle show
, чтобы просмотреть список драгоценных камней, которые Bundler настроил для вас.
Ответ 2
gem list
- это неправильный способ показать драгоценные камни, установленные для приложения, так как это покажет системные драгоценные камни.
Чтобы проверить, какие камни для этого приложения и их версии, отметьте Gemfile.lock
. У вас будет самая точная информация.
Ответ 3
gem list
показывает вам все драгоценные камни, установленные на вашем компьютере.
Когда у вас есть драгоценный камень с другим расположением, чем драгоценные камни Ruby, Bundler сохранит их локально для проекта, а не по всей системе.