在Mac OS X 10.8.2上安装Ruby

时间:2013-02-02 13:53:00

标签: ruby macos installation makefile

我已经提到了Installing Ruby on Rails - Mac OS Lion并且跟随Alain Beauvois's reply并且已经完成了所有事情。唯一的区别是我使用1.9.3而不是1.9.2。

我创建了.bash_profile,甚至确保open -e .bash_profile存在,甚至添加了Alain Beauvois所述的行。

但现在看来问题是我收到了这个错误:

Error running 'make', please read /usr/local/rvm/log/ruby-1.9.3-p374/make.log
There has been an error while running make. Halting the installation.

引用的日志包含:

[2013-02-02 21:41:52] 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/usr/local/rvm/usr/include -I. -I.ext/include/x86_64-darwin12.2.1 -I./include -I.
    DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace  
    SOLIBS = 
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

我甚至尝试过

rvm -install ruby-1.9.3-p374

但仍然得到同样的错误。在我得到这个部分之前,我确实得到了一些奇怪的错误,但是在我重新加入它之前添加sudo之后,它就起作用了。 AFAIK,sudo =使用su权限/权限执行某项操作,对吗?

9 个答案:

答案 0 :(得分:31)

我有完全相同的错误,但是使用brew而不是MacPorts。我所要做的就是:

brew update
brew tap homebrew/dupes
brew install apple-gcc42
rvm get stable
rvm install 1.9.3-p374

我没有像某些指示所指出的那样设置CC环境变量。 HTH!

答案 1 :(得分:20)

如果你使用rbenv和ruby-build而不是rvm,你必须这样做:

env CC=gcc rbenv install 1.9.3-p392

如果这不起作用,请尝试:

# this export must be done before every new ruby build
export CC=gcc
# use the version you wish to install
rbenv install 1.9.3-p392

如果不起作用,则需要先安装gcc:

brew update
brew tap homebrew/dupes
# install apple-gcc, only once needed
brew install apple-gcc42

在红宝石人构建clang兼容的ruby版本之前,你必须在每次构建新的ruby版本之前导出CC变量

答案 2 :(得分:18)

刚刚找到this。我认为这是你需要做的。

首先,如果您还没有,请下载MacPorts并进行安装。然后运行以下两个命令:

sudo port selfupdate
sudo port install apple-gcc42

太真实的UNIX GCC了。然后,安装1.9.3 run:

CC=/opt/local/bin/gcc-apple-4.2 rvm install ruby-1.9.3-p194 --enable-shared --without-tk --without-tcl

这告诉rvm使用UNIX GCC安装Ruby而没有需要X11的Tk或Tcl(OSX 10.8之外)。如果您需要readline支持,OpenSSL等内容,请查看上面链接的要点。

答案 3 :(得分:3)

这也适用于OSX 10.8.2 + XCode 4.6上的rbenv

$ export CC=gcc
$ rbenv install 1.9.3-p385 -v

但是如果苹果将来更改Xcode的命令行工具,那么知道自制软件可以安装另一个版本的gcc也很有用。

答案 4 :(得分:1)

我刚才(安装XCode命令行工具后):

$ export CC=gcc
$ rvm install 1.9.3

虽然它说“Ruby'ruby-1.9.3-p374'是使用clang构建的 - 但它没有(完全)支持,所以会出现错误。” - 它奏效了。

答案 5 :(得分:1)

这对我来说也适用于ruby-1.9.3-p385,没有安装自制软件或Macports。

export CC=gcc
rvm install 1.9.3

给出消息“Ruby'ruby-1.9.3-p385'是使用clang构建的 - 但它没有(完全)支持,期待错误。”完成任务后。

答案 6 :(得分:1)

只是为列表添加另一个答案......我正在使用ruby-install,这对我有用:

CC=/usr/local/bin/gcc-4.2 ruby-install ruby 1.9.3-p0

答案 7 :(得分:0)

我试了apple-gcc42CC=/usr/bin/gcc没有运气,所以我不确定他们是否有必要。我正在使用rbenv经理,因此在尝试安装1.9.3-p385时,这对我有用

brew install readline
CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)" rbenv install 1.9.3-p385

this blog

上找到它

答案 8 :(得分:0)

记录:rbenvruby 1.9.3-p385gcc48 brew install gcc48 Darwin Kernel Version 15.2.0)为我工作。 (编辑期间有很多警告我忽略了,ruby到目前为止工作得很好。)

我必须在CC=gcc-4.8

之前设置rbenv install 1.9.3-p385