为什么命令`gem list`不包含用bundler's安装的gems:git选项?

时间:2013-12-16 01:09:57

标签: ruby git gem bundler

在我们的导轨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正确安装?

3 个答案:

答案 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会将这些宝石本地存储在项目中而不是系统范围内。