3

我使用 RVM 将 Ruby 1.9.2 从补丁级别 p180 升级到 p290:

rvm upgrade 1.9.2-p180 1.9.2-p290

然后,我使用这些命令来更新我的 Rails gem 和其他 gem

gem install rails 3.0.5
gem update

一切似乎都很好;rvm info显示所有 Ruby 二进制文件和 gem 都已移动到正确的 p290 路径 (~/.rvm/*/ruby-1.9.2-p290/*)。

但是,当我转到我的 Rails 应用程序目录并发出命令rails console时,我收到一条错误消息,指出 gem (activesupport-3.0.5) 无法加载libruby.1.9.1.dylib文件。

上午 10:30 ~/Development/rails_projects/my_app_0515 $ rails 控制台

/Users/whk/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require': dlopen(/Users/whk/.rvm /gems/ruby-1.9.2-p290/gems/serialport-1.0.4/lib/serialport.bundle, 9):库未加载:/Users/whk/.rvm/rubies/ruby-1.9.2-p180/ lib/libruby.1.9.1.dylib (LoadError) 引用自:/Users/whk/.rvm/gems/ruby-1.9.2-p290/gems/serialport-1.0.4/lib/serialport.bundle 原因:图像不是找到 - /Users/whk/.rvm/gems/ruby-1.9.2-p290/gems/serialport-1.0.4/lib/serialport.bundle 。. .

Rails 在 中找不到 dylib 文件~/.rvm/rubies/ruby-1.9.2-p180/lib,因为p180路径不再存在,但文件在~/.rvm/rubies/ruby-1.9.2-p290/lib.

从一个单独的StackOverflow 帖子中,我发现一种解决方法是将这一行添加到 .bashrc

export DYLD_LIBRARY_PATH="/Users/whk/.rvm/rubies/ruby-1.9.2-p290/lib:$DYLD_LIBRARY_PATH"

但是,我想了解为什么 rvm ruby​​ 升级不处理 lib 路径更改?有谁知道更清洁的解决方案 - 从配置位置删除 p180 路径的解决方案?

这是我的环境:

  • Mac OS X 10.6.6(雪豹)
  • 转速 1.8.4
  • 红宝石 1.9.2p290
  • 导轨 3.0.5

谢谢!

4

1 回答 1

0

问题出在 gems 本机扩展中-它们在此期间不重建rvm upgrade 1.9.2-p180 1.9.2-p290-下次请仔细查看输出...它应该为您提供信息有什么问题。

至于这个特殊的用例,它应该足以重新安装给定的 gem:

gem install serialport -v 1.0.4

...不确定是否应该先卸载它

于 2012-02-03T21:09:17.700 回答