'lazy符号绑定失败:使用gem命令在越狱iPhone上找不到符号:__OSSwapInt16'

时间:2012-08-20 18:52:26

标签: iphone ios ruby gem jailbreak

我在iOS 5.1.1上遇到过Ruby问题。任何gem命令都会失败。如果我尝试gem update

mobile$ gem update

Updating installed gems
dyld: lazy symbol binding failed: Symbol not found: __OSSwapInt16 Referenced from: /usr/lib/ruby/1.9.1/arm-darwin9/socket.bundle
Expected in: flat namespace

dyld: Symbol not found: __OSSwapInt16
Referenced from: /usr/lib/ruby/1.9.1/arm-darwin9/socket.bundle
Expected in: flat namespace

Trace/BPT trap: 5

有趣的是ruby -v显示1.9.2:

mobile$ ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [arm-darwin9]

有关如何修复的任何想法?我试过通过Cydia删除Ruby包并重新安装,但它是一样的。我认为这可能与试图在我的iOS设备上使用宝石的人有关。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。删除(重命名)socket.bundle毫不奇怪地产生了以下结果:

    ERROR:  Loading command: update (LoadError)
        no such file to load -- socket.so
    ERROR:  While executing gem ... (NameError)
        uninitialized constant Gem::Commands::UpdateCommand

编辑:我能够通过将ruby 1.9.2-p0-10降级为ruby 1.9.1-p429-6来成功运行gem update。当使用1.9.2时,仍有对1.9.1的引用似乎导致了上述错误。