Way*_*uin 123
我为生产构建了RVM,并在稍后添加了开发人员的"细节".如果您想了解更多信息,请阅读网站上的文档和白天EDT最天的某个时候跟我说#rvm irc.freenode.net上.
Jef*_*rin 22
由于RVM只是在现有Ruby实现之间进行下载,隔离和切换的一种奇特方式,我认为它就像你正在运行它的任何ruby实现一样准备就绪.
从本质上讲,所有RVM都指向特定Ruby实现的路径.这正是您使用*nix发行版的Ruby实现时会发生的情况.唯一真正的区别是你的路径将被重写,这样当你运行ruby -v它时,它将从你当前用户的.rvm目录而不是像/ usr/local/bin这样的全局系统目录运行ruby.
我会更进一步地说,使用RVM是比使用通常安装在*nix发行版中的更好的解决方案,因为它可以很容易地按用户沙箱化特定的ruby实现.RVM还可以在您的生产应用程序上尝试切换红宝石(即,从1.8.7到1.9.2),同时保持一个可靠的回滚策略,如果某些东西不能正常工作的话.它还可以更容易地将旧应用程序保存在一个版本的Ruby上,同时将新应用程序切换到更新版本.
我不同意,特别是如果你正在使用任何一种自动化生产过程(木偶,厨师,雾等)并且你有一台或两台以上的机器.
我们遇到过这样的问题:RVM版本X的工作方式与RVM版本Y完全不同(不同的默认Rubygems版本,不同的默认gemset配置,系统范围安装的完整更改),打破了我们的自动配置流程.
如果您正在开发并随时调整内容,那么这不是问题,如果您有无人参与的脚本/木偶安装,那么这是一个杀手锏.我们通过锁定特定的RVM版本来解决这些问题,但我记得与Wayne进行了一次对话,他对此不予理睬.如果我们继续在prod中使用RVM,我们实际上将它打包成一系列.debs(一个用于安装,一个用于每个Ruby).
.rvmrc默认提示并且只能在homedir~/.rvmrc(而不是系统范围内)中覆盖的方式也没有用.
我实际上喜欢RVM在开发过程中改变并以这种方式做事的方式 - 没有什么比向后兼容性所阻碍更糟糕了.然而,这种方法在生产/ staging/uat/test中花费了我们一些时间(以及拔毛).
你知道,我曾经做过类似的rvm是一个开发工具评论,并被告知rvm最初是一个生产工具.
因此,RVM将使您的生产环境变得更加复杂,这很糟糕,但它使它更加孤立和分隔,人们称之为模块化的语言,这很好.
最后,只要您测试部署,我就不会看到任何类型的静态配置本身都是"不安全"的.
| 归档时间: |
|
| 查看次数: |
6786 次 |
| 最近记录: |