RVM安装1.8.7(雪豹)make.log错误



我正在新macbook pro上安装ruby 1.8.7和rvm。我在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"…没有运气…

在我的例子中,我最终降级到rvm 1.8.0,并使用——with-readline-dir标志来安装ruby 1.8.7。终于成功了!!谢谢你的提示

问题列表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

你不会得到zlib错误,如果你使用rvm 1.8.0,你不需要任何标志来安装它

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

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

现在我得到一个libz问题,当我试图安装gems..

实际上,所有要做的就是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/请,我会很乐意修复它。

这不是一个解决方案,但这是我所做的,当我有这个…

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

安装readlinebrew install readline

然后下载最新的ruby版本,比如1.9.2-p290http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz解压到$HOME/.rbenv/versions/

目录下

then go to:

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

最新更新