我知道使用时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>