rvm install 1.8.7(雪豹)make.log错误

时间:2011-09-08 18:00:52

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

我正在使用rvm在新的macbook pro上安装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” ......没有运气......

5 个答案:

答案 0 :(得分:2)

在我的情况下,我最终降级到rvm 1.8.0并使用--with-readline-dir标志来安装ruby 1.8.7。它终于奏效了!!谢谢你的线索。

答案 1 :(得分:1)

啊,在这里找到答案: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问题..要解决..

答案 2 :(得分:1)

问题在于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错误。

答案 3 :(得分:1)

实际上,所有必须要做的就是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将zlib安装为'rvm pkg install zlib',那么您可以完成

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

我相信我已更新网站上的文档以反映这一点。如果您发现错误,请打开针对https://github.com/rvm/rvm-site/issues/的问题,我将非常乐意解决此问题。

答案 4 :(得分:-1)

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

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

使用家庭酿造安装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
相关问题