简体   繁体   中英

Why doesn't the command `gem list` include gems installed with bundler's :git option?

In our rails 3.2 Gemfile , there are some gems installed with option :git pointing to repo on github , such as:

gem 'ruote', :git => 'http://github.com/jmettraux/ruote.git'

After bundle install , we type gem list to list all the gems installed. However gem list does not list ruote as a gem installed. As a matter of fact, there is no ruote listed at all. We notice the same thing also happens to all rails engines which are installed with option :git pointing to repo on github. Why gem list does not list all gems installed? How can we assure that ruote is correctly installed?

According to the Bundler Documentation , gems from git sources will not show up in gem list because the gem command cannot process them, so Bundler has to do all of the work by itself. Bundler stores these gems in its own location instead. (Note that this location has nothing to do with the current project. It is in ~/.bundler/... by default.)

You can see that it is installed if bundle install completes with no errors. You can also use bundle show to see the list of gems that Bundler has set up for you.

gem list is not the right way to show gems installed for the app, as it will show system wide gems.

To check what gems are for this app and their versions, check Gemfile.lock . You'll have the most precise info there.

gem list is showing you all the gems installed on your machine.

When you have a gem with a different location than Ruby's gems, Bundler will store these locally for the project rather than system wide.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM