我知道在使用gem install
时,gem将被存储在/home/username/.rvm/gems/下,在该gemset下安装gem。打包商在哪里存储宝石?
但是,如果我使用Bundler并在Gemfile中指定gem,那么当我运行bundle install时,那些gem将被存储在哪里?如果我已经安装了使用gem install
的gem,如果我运行bundle install,它会使用以前使用gem install
安装的gem吗?
我知道在使用gem install
时,gem将被存储在/home/username/.rvm/gems/下,在该gemset下安装gem。打包商在哪里存储宝石?
但是,如果我使用Bundler并在Gemfile中指定gem,那么当我运行bundle install时,那些gem将被存储在哪里?如果我已经安装了使用gem install
的gem,如果我运行bundle install,它会使用以前使用gem install
安装的gem吗?
这取决于。在通常的开发环境中,他们安装在“正常”安装gem的位置(通过运行gem install foo
),并且bundler不会重新安装已存在的gem。这个位置取决于rubygems本身的配置。
如果您运行bundle与--deployment
选项,则宝石将被安装在专属于您的应用程序的位置安装(你可以通过这个作为一个单独的选项,但默认为供应商/束)
你也可以运行bundle package
以存储您的应用在vendor/cache
中使用的所有.gem文件。运行bundle install
会将供应商/缓存中的宝石选为其他位置的宝石。
这里/usr/local/lib/ruby/gems/2.1.0/gems/
和这里:/usr/local/lib/ruby/gems/2.1.0/bundler/gems/
。
我想这只适用于某些操作系统 – 2015-09-17 19:53:34
你知道bundler如何决定哪个目录下的哪个gem? – 2015-11-13 18:10:08
如果你想找出一个特定的宝石存储在哪里,你可以运行bundle show <gem-name>
。例如:
[email protected]$ bundle show rake
/var/bundle/ruby/2.1.0/gems/rake-10.4.2
这是否意味着所有的宝石都安装在你的红宝石上? – Jwan622 2016-04-07 22:34:23
'bundle show' –
Chowlett
2012-07-24 16:17:03
谢谢,我完全忘了那个命令。 – maru 2012-07-24 16:24:06