我使用RVM将Ruby 1.9.2从补丁级别p180升级到p290:
rvm upgrade 1.9.2-p180 1.9.2-p290
然后,我使用这些命令来更新我的Rails 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 console
/Users/whk/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in"requiret':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无法在~/.rvm/rubies/ruby-1.9.2-p180/lib
中找到dylib文件,因为p180
路径不再存在,但该文件位于~/.rvm/rubies/ruby-1.9.2-p290/lib
。
从单独的StackOverflow post,我发现一个解决方法是将此行添加到.bashrc
export DYLD_LIBRARY_PATH="/Users/whk/.rvm/rubies/ruby-1.9.2-p290/lib:$DYLD_LIBRARY_PATH"
但是,我想了解为什么rvm ruby升级不会处理lib路径更改?有没有人知道更清洁的解决方案 - 从配置位置删除p180路径?
以下是我的环境:
谢谢!
答案 0 :(得分:0)
问题出在gems原生扩展中 - 他们在rvm upgrade 1.9.2-p180 1.9.2-p290
期间没有重建 - 下次请仔细查看输出...它应该会给你的信息带来什么错误。
至于这个特殊用例,它足以重新安装给定的gem:
gem install serialport -v 1.0.4
...不确定是否应该先卸载