ruby – 系统更新后更新所有RVMruby和宝石的最佳方法?

我正在寻求一种更加简化和强大的方法来在操作系统更新后保持我的rvm环境完好无损.我正在使用Mountain Lion,rvm 1.18.16和自制软件,它有readline,gettext,libxml2,libxslt,qt,gtk – 通常为我打破的宝石是nokogiri和capybara-webkit

在更新Mountain Lion和XCode后,我的原生扩展宝石和Ruby已经两次遭遇破坏,我不得不花时间让一切都恢复正常.我不得不怀疑我是否遵循了在系统更新后更新所有rvm组件的最佳实践.

通常情况下,具有本机扩展的gem将链接到不再可用的旧库,尤其是围绕Mountain Lion的libxml问题.这是我让系统在所有项目中重新上线的基本步骤(我在rvm下安装了大约8个Ruby版本,所以这很乏味!).

首先,通过App Store更新Mountain Lion和XCode.

二,更新自制软件:

brew update
brew upgrade

然后列出你的ruby并开始重新编译每一个

rvm list
rvm reinstall ruby-1.9.2-p290
rvm reinstall ruby-1.9.3-p392
...

注意:我确实尝试过:

rvm all do reinstall

但这给了我这个错误:“重新安装:找不到命令”

接下来,逐步浏览每个ruby并在gem上执行pristine(这具有重新编译所有本机扩展gem的副作用):

rvm use ruby-1.9.3-p392
gem pristine --all

最后,转到每个项目并执行以下操作:

bundle install

我不确定最后一步是否是绝对必要的 – 有些项目似乎没问题,有些项目没有,但是运行这似乎可以解决最后遗留的问题.

当然,有一种更简化的方式来管理这个过程!?我只使用Mountain Lion和rvm几个月,但在那个时候,两个系统更新已经杀死了我工作的大部分Ruby环境.我安装了很多Ruby版本,因为我担任顾问并遇到许多开发环境,所以我真的很想把它变成一个容易重复的过程.

有什么想法吗?以上可以进一步改善吗?

解决方法

你可以做:
rvm reinstall all

追加–force跳过问题.

请注意,将完全重新安装包括每个gem的gem pristine,您需要注意输出,因为它会通知您有关未能执行原始操作的gem.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...