【问题标题】:rvm install 1.8.7 (snow leopard) make.log errorrvm install 1.8.7 (snow leopard) make.log 错误
【发布时间】:2011-11-13 05:27:31
【问题描述】:

我正在新的 macbook pro 上安装带有 rvm 的 ruby​​ 1.8.7。我在 10.6.8 上,我有 xcode 4.0.2。 RVM 已启动。我可以毫无问题地安装 1.9.2。但是当我尝试 1.8.7 时出现错误:

ERROR: Error running 'make ', please read /Users/brentw/.rvm/log/ruby-1.8.7-p352/make.log
ERROR: There has been an error while running make. Halting the installation.

在 make.log 文件中最后几行如下:

ld: warning: ignoring file ../../../libruby.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
compiling win32ole
compiling zlib
making ruby
/usr/bin/gcc-4.2 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp  -fno-common -pipe -fno-common    -DRUBY_EXPORT  -L. -arch i386 -arch x86_64 -bind_at_load   main.o  -lruby -lpthread -ldl -lobjc   -o ruby
ld: warning: ignoring file ./libruby.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
Undefined symbols for architecture i386:
  "_ruby_init_stack", referenced from:
      _main in main.o
  "_ruby_init", referenced from:
      _main in main.o
  "_ruby_options", referenced from:
      _main in main.o
  "_ruby_run", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/ay/aypnf68iFrumAawnjs+96FjhQuk/-Tmp-//cc7BuLDX.out (No such file or directory)
make[1]: *** [ruby] Error 1
make: *** [all] Error 2

我一直在到处搜索,尝试了多种方法,但似乎无法启动 1.8.7。我尝试了不同的补丁(尽管可能不是全部),尝试安装 ree,安装 rvm readline,尝试“rvm install 1.8.7 -C --with-arch=x86_64, --with-readline-dir=$rvm_path/usr” ...没有运气...

【问题讨论】:

    标签: ruby-on-rails ruby macos osx-snow-leopard rvm


    【解决方案1】:

    就我而言,我最终降级到 rvm 1.8.0 并且还使用了 --with-readline-dir 标志来安装 ruby​​ 1.8.7。它终于奏效了!!感谢提供线索。

    【讨论】:

      【解决方案2】:

      问题在于 rvm 1.8.2。您必须回滚到 1.8.0,一切都会按预期工作。

      rvm get 1.8.0
      

      如果您已删除 rvm,请使用以下命令安装 1.8.0:

      curl -s https://rvm.beginrescueend.com/install/rvm -o rvm-installer ; chmod +x rvm-installer ; ./rvm-installer --version 1.8.0
      

      如果您使用 rvm 1.8.0 并且不需要任何标志来安装它,您将不会收到 zlib 错误。

      【讨论】:

      • 谢谢,完成了这项工作,作为旁注,rvm get 1.8.0 是一种更容易降级的方法! :)
      【解决方案3】:

      啊,在这里找到了答案:https://rvm.io/os/darwin/

      rvm_archflags="-arch i386" CFLAGS="-arch i386" LDFLAGS="-arch i386" rvm install 1.8.7 --patch osx-arch-fix
      

      现在我在尝试安装 gems 时遇到了 libz 问题.. 待解决..

      【讨论】:

      • 这个不行。问题是 rvm 1.8.2。如我的回答中所述,将 rvm 回滚到 1.8.0,一切都会按预期工作。
      • 由于这个 libz 问题,我最终重新安装了 OSX,并且一切顺利。
      【解决方案4】:

      实际上,所有必须做的事情就是 rvm get head,它会将您带到 1.8.3,它通过在构建过程中删除意外添加的 -arch i386 来解决问题。最重要的是,简单地从 Homebrew 安装 zlib 将消除 zlib 问题以及做

      rvm install 1.8.7 --with-zlib-dir=/usr/local/Cellar/zlib/x.x.x
      

      或者,如果您使用 rvm 作为 'rvm pkg install zlib' 安装 zlib,那么您可以完成

      rvm install 1.8.7 --with-zlib-dir=$rvm_path/usr
      

      我相信我已经更新了网站上的文档以反映这一点。如果您发现其中有误,请针对https://github.com/rvm/rvm-site/issues/ 打开一个问题,我将非常乐意修复它。

      【讨论】:

        【解决方案5】:

        这不是一个解决方案,但这就是我在遇到这个时所做的......

        我在这个问题上花费了很多时间,我最终自己获取并编译了 ruby​​,并在安装后使用了另一个名为 rbenv 的 ruby​​ 版本管理器:

        使用 home brew 安装 readline: brew install readline

        然后下载最新的 ruby​​ 版本,如 1.9.2-p290: http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz 并将其提取到 $HOME/.rbenv/versions/

        然后转到:

        cd $HOME/.rbenv/versions
        

        然后通过执行以下操作来构建 ruby​​ 版本:

        ./configure --prefix=$HOME/.rbenv/versions/1.9.2-p290  --with-readline-dir=/usr/local/Cellar/readline/6.2.1/
        make
        sudo make install
        

        不要忘记将当前版本设置为:

        rbenv global 1.9.2-p290
        rbenv rehash
        

        【讨论】:

        • 嗯。是的,我确实需要 rvm。 (不过,谢谢,我可以记住这一点以备后用)。这台计算机上有一个以前的用户安装了我需要的版本。我再次安装了 rvm(不检查它是否已经存在),然后开始做所有事情。
        猜你喜欢
        • 2011-09-07
        • 2021-10-02
        • 2019-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多