我正在寻求一种更精简、更健壮的方法来在操作系统更新后保持rvm环境的完整性。我用的是Mountain Lion,RVM1.18.16和homebrew,它有readline,gettext,libxml2,libxslt,qt,gtk+ --我最喜欢的是nokogiri和capybara-webkit
在两次更新Mountain Lion和XCode之后,我的本地扩展gem和Ruby都遭到了破坏,我不得不花时间让一切恢复正常。我想知道我是否遵循了在这样的系统更新之后更新所有rvm组件的最佳实践。
通常发生的情况是,具有本机扩展的gem链接到不再可用的旧库,特别是在围绕Mountain Lion的libxml问题上。下面是我在所有项目中让我的系统恢复在线的基本步骤(我在rvm下安装了大约8个版本的Ruby,所以这很乏味!)
首先,通过应用商店更新Mountain Lion和XCode。
第二,使用以下工具更新自制软件:
brew update
brew upgrade
然后列出你的红宝石,并开始重新编译每个红宝石...
rvm list
rvm reinstall ruby-1.9.2-p290
rvm reinstall ruby-1.9.3-p392
...
注意:我确实尝试过:
rvm all do reinstall
但是这给了我这个错误:"reinstall: command not found“
接下来,遍历每个ruby并在gem上执行pristine (这有重新编译所有本地扩展gem的副作用):
rvm use ruby-1.9.3-p392
gem pristine --all
最后,转到每个项目并执行以下操作:
bundle install
我不确定最后一步是否是严格必要的--有些项目看起来没问题,有些项目不是,但运行这一步似乎解决了最后的遗留问题。
当然还有一种更流畅的方式来管理这个过程!我使用Mountain Lion和rvm只有几个月的时间,但在这段时间里,两个系统更新扼杀了我大部分的Ruby工作环境。我已经安装了很多Ruby版本,因为我是一名顾问,并且遇到了许多开发环境,所以我真的很想把这个过程简化为一个容易重复的过程。
有什么想法吗?以上几点还能不能进一步完善?
发布于 2013-03-08 02:58:15
您可以执行以下操作:
rvm reinstall all
追加--force
以跳过问题。
请注意,将执行完全重新安装,包括每个gem的gem pristine
,您需要注意输出,因为它将通知您未能执行pristine
操作的gem。
https://stackoverflow.com/questions/15279786
复制相似问题