Access denied, Please sign in and make sure you have proper permission.
- 当执行 bundle install 后,默认是将 gem 安装到哪个目录下的呢?
- 如果我把 gemfile.lock 删除后,在执行 bundle install 是不是会安装最新 gem(gemfile 未指定版本号)
- 如果用 gem install gem_name 安装相关 gem 后,bundle install 还会安装吗?
看似很简单的问题,想知其所以然,希望得到解答
简单回答
- 默认会到$GEM_HOME 下
- bundle install 时,会检查
gemfile,如没有指定版本号并没有gemfile.lock,会自动从 source 安装最新版本。
- 参考 2,只考虑 gemfile 和 gemfile.lock
默认 bundle install 就装在 ruby 所在的目录了,例如 ~/.rvm/gems/ruby-2.1.5/gems/rspec-rails-3.2.1
删了 lock 后,bundle install 会先从本地已经安装的 gem 找本地最新版本来依赖。
gem install 之后,bundle install 会复用,不会重新安装。
以上所有行为都是默认情况下,基本上都可以指派参数来调整缺省行为。
#3 楼 @answer 2 的前提是,你已经删了 gemfile.lock , 并且 gemfile 没有指定版本
@foxzool 是这样的,不过 #2 楼 意思是只有 bundle update 才会从 source 安装最新版本,而 bundle install 是先从本地已经安装的 gem 找本地最新版本
若你想查看当前项目的某个 gem 包安装位置:bundle show gem_name
若你想单独更新一个 gem 包,而不像修改 gemfile 和 gemfile.lock:bundle update gem_name