什么会导致OS X上的本机gem扩展构建但无法加载?

时间:2010-03-30 16:09:41

标签: ruby macos rubygems nokogiri

我遇到了一些rubygems问题,特别是那些使用原生扩展程序的问题。

我在使用Snow Leopard的MacBookPro上。我安装了XCode 3.2.1,带有gcc 4.2.1。 Ruby 1.8.6,因为我懒惰而且是一只害怕的猫而且还不想升级。 Ruby以32位模式运行。当我的MBP运行OSX 10.4时,我从零开始构建了这个ruby。

当我在irb中需要一个受影响的gem时,我得到gem扩展的bundle文件的Load Error。例如,这里的nokogigi不喜欢我:

  

>要求'rubygems'   =>真正
  >要求'nokogiri'
  LoadError:无法加载/usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.4.1/lib/nokogiri/nokogiri.bundle

这也发生在Postgres pg和MongoDB mongo gems上。

我的第一个想法是,扩展一定不能正确建立。但是gem install并没有抛出任何错误。所以我重新安装了详细的标志,希望看到一些有用的警告。 I've put the output in a Pastie,我看到的唯一一个警告是关于“由于原型而传递'foo'的参数n的不同宽度。”

我怀疑这可能是升级到Snow Leopard的问题,但我现在有点惊讶,因为我已经更新了我的XCode。它可以源于在1.8.6中运行Ruby吗?我很尴尬,我不太了解我的Mac和OSX,知道接下来要去哪里,所以任何指导,甚至只是指向我通过谷歌找不到的某些文件的指针,都会受到欢迎。

迈克尔

1 个答案:

答案 0 :(得分:1)

我看到很多带有gcc输出的/ opt / local东西 - 你使用的是MacPorts吗?如果是这样,你可能会因为使用其他准不同的环境而获得一些乐趣 - 我在使用MacPorts升级到10.6之后遇到了类似的各种问题,结果转而使用rvm对于我的Ruby升级/管理,并且已经使用Homebrew替换MacPorts。

this有帮助吗?