35

我提到了在 Rails 上安装 Ruby - Mac OS Lion并遵循Alain Beauvois 的回复,几乎所有事情都搞定了。唯一的区别是我使用的是 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

4

9 回答 9

31

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

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

正如一些说明所指出的那样,我不必设置 CC 环境变量。!

于 2013-02-07T22:02:19.530 回答
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

在 ruby​​ 人员构建兼容 clang 的 ruby​​ 版本之前,您必须在每次构建新的 ruby​​ 版本之前导出 CC 变量

于 2013-02-09T15:46:47.123 回答
18

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

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

sudo port selfupdate
sudo port install apple-gcc42

也得到真正的 UNIX GCC。然后,安装 1.9.3 运行:

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,无需 Tk 或 Tcl 需要 X11(OSX 10.8 中省略)。如果您想要 readline 支持、OpenSSL 等,请查看上面链接的要点。

于 2013-02-02T14:43:24.773 回答
3

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

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

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

于 2013-02-11T23:31:48.000 回答
1

这在没有安装自制软件或 Macports 的 ruby​​-1.9.3-p385 上也适用于我。

export CC=gcc
rvm install 1.9.3

给出消息“Ruby 'ruby-1.9.3-p385' 是使用 clang 构建的 - 但它不(完全)受支持,预计会出现错误。” 完成任务后。

于 2013-02-19T01:59:47.880 回答
1

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

CC=/usr/local/bin/gcc-4.2 ruby-install ruby 1.9.3-p0
于 2013-10-29T18:43:28.173 回答
1

我刚刚做了(在安装 XCode 命令行工具之后):

$ 出口 CC=gcc
$ rvm 安装 1.9.3

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

于 2013-02-07T23:22:11.050 回答
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

在这个博客上找到它

于 2013-02-17T13:25:02.153 回答
0

备案:在rbenv, ruby 1.9.3-p385, gcc48( brew install gcc48) 上为我工作Darwin Kernel Version 15.2.0。(编译过程中有很多我忽略的警告,到目前为止,ruby 工作正常)。

我只需要在CC=gcc-4.8之前设置rbenv install 1.9.3-p385

于 2016-01-12T17:58:41.193 回答