Where do gems install?

2019-01-20 23:44发布

问题:

I'm trying to edit one of the gem's config files and I can't find it. I'm not sure how I did this in the past.

回答1:

Look at your gem environment.

In a terminal run gem env

You should see an entry INSTALLATION DIRECTORY, but there is also GEM PATHS which is where it's loading all your gems from in your current environment.



回答2:

Rvm

$ rvm gemdir

Or you can check:

echo $GEM_HOME

Bundler

$ bundle show --paths

For specific gem:

$ bundle show 'gem_name'

Gem

$ gem env

For specific gem:

$ gem which 'gem_name'


回答3:

To see the default installation directory, run

gem env gemdir

If you want to change the default installation directory (for example, to ~/.gem/ruby/2.1.0), add this line to ~/.bashrc

export GEM_HOME=~/.gem/ruby/2.1.0

And you also need to make sure ~/.gem/ruby/2.1.0/bin is in your PATH environment variable to use the commands provided by gem packages. If not, add this line to ~/.bashrc

export PATH=$PATH:~/.gem/ruby/2.1.0/bin



回答4:

If you are editing the gem's installed files, then the gem wasn't implemented correctly, or you are not modifying it correctly.

Proper gems are usually configured:

  • via an initializer script on config/initializers
  • via monkeypatching on lib
  • via generators provided by the gem itself. These tend to generate lots of files, but they usually have a "initialize" or "install" option for setting up the gem.