在我们的导轨3.2 Gemfile
中,安装了一些宝石,其中选项:git
指向github
上的回购,例如:
gem 'ruote', :git => 'http://github.com/jmettraux/ruote.git'
在bundle install
之后,我们输入gem list
列出所有已安装的宝石。但是,gem list
未将ruote
列为已安装的gem。事实上,根本没有列出ruote
。我们注意到同样的事情也发生在所有rails engines
上,它们安装时选项:git
指向github上的repo。为什么宝石列表没有列出所有安装的宝石?我们怎样才能确保ruote正确安装?
答案 0 :(得分:20)
根据Bundler Documentation,来自git源的gems不会出现在gem list
中,因为gem
命令无法处理它们,因此Bundler必须自己完成所有工作。 Bundler将这些宝石存储在自己的位置。 (请注意,此位置与当前项目无关。默认情况下位于~/.bundler/...
。)
如果bundle install
完成且没有错误,您可以看到它已安装。您还可以使用bundle show
查看Bundler为您设置的宝石列表。
答案 1 :(得分:1)
gem list
不是为应用安装宝石的正确方法,因为它会显示系统范围的宝石。
要查看此应用及其版本的宝石,请检查Gemfile.lock
。你会得到最准确的信息。
答案 2 :(得分:0)
gem list
向您显示计算机上安装的所有宝石。
当宝石的位置与Ruby宝石的位置不同时,Bundler会将这些宝石本地存储在项目中而不是系统范围内。