在OS X上通过RVM安装Ruby时运行'make'时出错Mountain Lion

问题描述:

这是我第一次使用Ruby。我意识到不要使用sudo来安装Gems,所以我遵循这个tutotrial(http://pragmaticstudio.com/blog/2010/9/23/install-rails-ruby-mac)来安装RVM,以便我可以更新我的Ruby版本,然后安装Middleman(http://middlemanapp.com/)。在OS X上通过RVM安装Ruby时运行'make'时出错Mountain Lion

RVM安装工作,但在“#compiling”阶段,我得到以下错误安装Ruby 1.9.3时:

Error running 'make', please read /Users/Mark/.rvm/log/ruby-1.9.3-p385/make.log There has been an error while running make. Halting the installation.

我打开日志文件,不像很多的我已经等问题可以看到,该文件不包含对'readline'的引用,而是对'编译',我假定它涉及到Ruby安装的'#compiling'阶段。下面是输出到make.log里:

[2013-02-12 09:04:26] make 
    CC = clang 
    LD = ld 
    LDSHARED = clang -dynamic -bundle 
    CFLAGS = -O3 -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32 -Werror=implicit-function-declaration -pipe 
    XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT 
    CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/Users/Mark/.rvm/usr/include -I. -I.ext/include/x86_64-darwin12.2.0 -I./include -I. 
    DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace 
    SOLIBS = 
compiling main.c 
compiling dmydln.c 
compiling dmyencoding.c 
compiling version.c 
compiling dmyversion.c 
compiling miniprelude.c 
compiling array.c 
compiling bignum.c 
bignum.c:2732:26: warning: while loop has empty body [-Wempty-body] 
     while (--ny && !zds[ny]); ++ny; 
           ^
bignum.c:2732:26: note: put the semicolon on a separate line to silence this warning 
1 warning generated. 
compiling class.c 
compiling compar.c 
compiling complex.c 
compiling dir.c 
compiling dln_find.c 
compiling enum.c 
compiling enumerator.c 
compiling error.c 
compiling eval.c 
compiling load.c 
compiling proc.c 
compiling file.c 
compiling gc.c 
gc.c:3060:1: warning: unused function 'chain_finalized_object' [-Wunused-function] 
chain_finalized_object(st_data_t key, st_data_t val, st_data_t arg) 
^ 
1 warning generated. 
compiling hash.c 
compiling inits.c 
compiling io.c 
compiling marshal.c 
compiling math.c 
compiling node.c 
compiling numeric.c 
compiling object.c 
compiling pack.c 
compiling parse.c 
compiling process.c 
compiling random.c 
compiling range.c 
compiling rational.c 
compiling re.c 
compiling regcomp.c 
compiling regenc.c 
compiling regerror.c 
compiling regexec.c 
compiling regparse.c 
regparse.c:582:15: error: implicit conversion loses integer precision: 'st_index_t' (aka 'unsigned long') to 'int' [-Werror,-Wshorten-64-to-32] 
    return t->num_entries; 
    ~~~~~~ ~~~^~~~~~~~~~~ 
1 error generated. 
make: *** [regparse.o] Error 1 

如果我执行“make --version”我得到以下输出:

GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0

我在努力寻找精确匹配的问题,所以如果任何人都能帮上忙,那会很棒。

干杯,

马克。

+1

你好马克,尝试一个干净的安装,看看是否重现错误。你可以使用[Rails Installer](http://railsinstaller.org/#osx)。它也基于RVM。的 – 2013-02-12 09:48:06

+0

可能重复[无法编译红宝石1.9.3(http://*.com/questions/14592945/cannot-compile-ruby-1-9-3) – mpapis 2013-02-12 14:57:30

我跟着一些建议在这里和链接和其他职位谷歌搜索,但最终,通过自制软件更新GCC是什么终于拿到了Ruby的安装请编译,完整。

具体的链接我用于更新GCC:Installing Ruby on Mac OS X 10.8.2

所以感谢所有帮助,我不能肯定,如果它是所有的更新和清理,以及GCC或只是GCC的组合,但我正在运行。

+1

超级用户上的这个答案涉及通过自制软件更新GCC,并为我工作:http://superuser.com/a/546778 – 2013-02-19 01:35:08

+0

@KevinC。是的,就是这样。感谢您的链接。 – 2013-02-19 09:26:58

虽然你没有看到它实际上是造成了Readline的错误。正如atmosx所说,我会删除默认的MAC OS X安装的ruby,并从一开始就遵循这个过程。

或之后这个https://rvm.io/packages/readline/帮助解决的ReadLine。也可对照看一下这个前面的问题:Error running make when installing Ruby 1.8.7-p302 via RVM on Mac OS 10.5.8

So complete steps are:

rvm pkg install readline 
rvm remove 1.8.7 
rvm cleanup all 
rvm install 1.8.7 -C –with-readline-dir=$rvm_path/usr 

感谢Andrew在http://anlek.com/2011/01/rvm-install-1-8-7-p330-fails/的指针。

+0

我不认为你值得向下票那里!我在其他方面跟随了这一点,并设法让Ruby安装并运行。 – 2013-02-18 13:23:25