我知道使用时gem install
,gem将存储在/home/username/.rvm/gems/下,在该gemset下安装了gem。
但是,如果我使用Bundler并在Gemfile中指定了gem,那么当我运行bundle install时,这些gem将存储在哪里?如果我已经使用来安装gem gem install
,如果我运行bundle install,它将使用以前使用来安装gemgem install
吗?
我知道使用时gem install
,gem将存储在/home/username/.rvm/gems/下,在该gemset下安装了gem。
但是,如果我使用Bundler并在Gemfile中指定了gem,那么当我运行bundle install时,这些gem将存储在哪里?如果我已经使用来安装gem gem install
,如果我运行bundle install,它将使用以前使用来安装gemgem install
吗?
bundle info <gemname>
代替bundle show <gemname>
”。
Answers:
这取决于。在通常的开发设置中,它们是按“正常”(通过运行gem install foo
)安装gem的方式安装的,而bundler不会重新安装已经存在的gem。此位置取决于rubygems本身的配置方式。
如果使用--deployment
选项运行bundle install,则gems将安装在应用程序唯一的位置(您可以将其作为单独的选项传递,但默认为供应商/捆绑包)
您还可以运行bundle package
以存储您的应用程序使用的所有.gem文件vendor/cache
。运行bundle install
将首选供应商/缓存中的宝石,而不是其他位置的宝石。
$ bundle install --path vendor/bundle
gem install
(取决于GEM_HOME,GEM_PATH等)
如果要查找特定宝石的存储位置,可以运行bundle info <gem-name>
。例如:
user@host$ bundle info rake
/var/bundle/ruby/2.1.0/gems/rake-10.4.2
对于较旧版本的rake,命令可能是 bundle show <gem_name>.
bundle show GEM
弃用bundle info GEM
这里/usr/local/lib/ruby/gems/2.1.0/gems/
和这里:/usr/local/lib/ruby/gems/2.1.0/bundler/gems/
。
bundle show <gemname>