2011-09-28 15 views
3

我用RVM从补丁级别P180升级红宝石1.9.2到P290:从P180升级Ruby1.9.2到P290,libruby动态库路径后不更新

rvm upgrade 1.9.2-p180 1.9.2-p290 

然后,我用这些命令更新我的Rails宝石和其他宝石

gem install rails 3.0.5 
gem update 

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

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

10:30〜/开发/ rails_projects/my_app_0515 $轨控制台

/Users/whk/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.0.5/ lib/active_support/dependencies.rb:239:在'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找不到~/.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红宝石升级不走的lib路径变化的照顾?有谁知道一个更清洁的解决方案 - 从配置的位置移除p180路径的解决方案?

这里是我的环境:

  • 的Mac OS X 10.6.6(雪豹)
  • RVM 1.8.4
  • 红宝石1.9.2p290
  • 的Rails 3.0.5

谢谢!

+0

我对p290有一个普遍的负面经验。许多宝石不会安装等。我现在正在指定'rvm 1.9.2-p180 @ some_gemset'。 – providence

回答

0

问题出在宝石原生扩展 - 它们在rvm upgrade 1.9.2-p180 1.9.2-p290期间没有重建 - 下一次请仔细看看输出结果......它应该给你的信息带来什么问题。

为这个特殊的使用情况下,它shoudl足以重新安装指定的宝石:

gem install serialport -v 1.0.4 

...不知道它是否应该先卸载

+0

感谢您的建议!我曾尝试过,不幸的是它没有奏效。我取消了在.bashrc中解决的解决方法,并成功卸载并重新安装了serialport gem,并再次尝试了rails conole。我看到了同样的错误。 –

+0

它仍然感觉是一样的问题,你尝试过空宝石,有新的名字吗? 'rvm install 1.9.3-named'并使用它'rvm use 1.9.3-named' – mpapis

+0

不,我没有试过。我不想篡改当前正在进行主动开发的工作设置。将来,我会牢记这一点。谢谢! –