Ruby 你使用 gemset 吗?

camel · 2012年02月06日 · 最后由 tracyzhang 回复于 2015年09月07日 · 8896 次阅读

rvm 就不说了,大家都用吧。我是想谈谈 rvm 的 gemset。 gemset 是为了创建不同的 gem 环境,但我发现用了之后有很多不爽。。。

  1. 项目不多,把所有的 gem 装到一起也没遇到什么问题。 因为每个工程都有Gemfile的限制,总能找到正确版本的 gem。

  2. 不同 gemset 中的 gem 共享起来太麻烦,每次都下耗时间耗空间。虽然有 global 的 gemset,但用起来麻烦。

  3. gemset 命名的不统一。对于 rails 3.1.3 版本,不同人创建的 gemset 名字不同。如rails313rails3.1.3rails3.1(省略 patch 版本号),rails31。如果别人在工程的.rvmrc中指定了 gemset 名,万一是因为命名不一致又要重新下载。我看 ruby-china 只指定了 ruby 的版本号,没有 gemset 名。

另外,我想让 gemset 跨 ruby 版本共享 (危险吗?),如ruby1.9.2ruby1.9.3共用一个 gemset,但没找到官方做法,最后建个软链接竟然可以,呵呵。

各位都说一下自己的感觉吧,haha~

从来没用过。

不要把.rvmrc 放到 git 里,麻烦就少点了,每个人用自己的

@camel 建个软链接竟然可以,我怎么就没想到呢?NB!

跨版本共享的话就失去了 gemset 的意义了吧? 以前没 bundler 的时候,gemset 确实很方便,不过有了 bundler,执行 rake 的时候用 bundle exec rake ,gemset 用不用都可以 个人意见,仅供参考

个人习惯是用 gemset。可是如 @vkill 说的,有 bundler 的话 gemset 可有可无

每个 project 我在 .bashrc 里面都放一个 alias,例如

alias comalisp='cd ~/comalisp; rvm use ruby-1.9.2-p136; rvm gemset use comalisp'

我用,因为一些 gem 的升级会带来些问题 特别是像 Rails 这样的

gemset 基本费了,想做 gem 升级绝缘,使用

bundle --path vender/bundle

bundler 是个不错的选择,不再需要 gemset

#7 楼 @xds2000 +1, plus bundle --path vendor --binstubs

bundle install --deployment 这个方法最安全互不想扰

#5 楼 @hayeah 你这是在模拟.rvmrc 做的事情么?:)

我们团队完全依赖 rvm 的 gemset, 我们的项目使用统一的 gemset 命名, 比如 rvm 1.9,3p0@awesome, 所以没有任何问题。 我不喜欢 bundle exec rake,不如 rake 简单。

#5 楼 @hayeah 想问一下怎样清空一个 gemset

#1 楼 @huacnlee 既然大神不用 我也不用了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号