【问题标题】:Installing Ruby on Mac OS X 10.8.2在 Mac OS X 10.8.2 上安装 Ruby
【发布时间】:2013-01-17 17:25:10
【问题描述】:

我参考了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 权限/特权做某事,对吧?

【问题讨论】:

  • 你读过/usr/local/rvm/log/ruby-1.9.3-p374/make.log吗?
  • 只需从railsinstaller.org/#osx 下载此工具包。它包括您开始使用 ruby​​/rails 开发所需的一切
  • 这里发帖太长,所以粘贴到这里:pastebin.com/R5VY6HPw 只是想知道,我之前的任何行为是否对我的 Mac 造成了影响?也许更改设置等
  • @AshishSaihgal 将尝试该解决方案。想做新鲜事,只使用安装程序。我可以做些什么来撤消我所做的更改?谢谢!
  • rvm install 1.9.3 怎么样?只需输入版本号。

标签: ruby macos installation makefile


【解决方案1】:

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

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

我不必像某些说明所指出的那样设置 CC 环境变量。 HTH!

【讨论】:

  • 谢谢,这是一个很大的帮助 - 我没有意识到 MacPorts 和 brew 做了同样的一般事情,并且无法弄清楚为什么“port”命令不起作用。仍然不确定为什么端口不起作用,但我很高兴它没有,因为我的工作使用自制软件。
  • 请注意,看起来我可能没有接受 xcode 命令行工具,所以我不得不运行 xcodebuild -license,然后阅读“rvm 要求”,发现我必须 brew install autoconf automake apple-gcc42 libtool pkg-config openssl readline libyaml sqlite libxml2 libxslt libksba
【解决方案2】:

如果你使用的是 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 变量

【讨论】:

  • 其实你只需要在rbenv install 1.9.3-p385之前运行export CC=gcc
  • 是的,只需要runt export,我认为gcc包含在xcode中。
  • 这就是我所需要的。我正在使用鱼壳,所以我的命令看起来像 env CC=gcc rbenv install 1.9.3-p392
【解决方案3】:

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

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

【讨论】:

  • 现在“卡在”attempting to fetch livm-3/1-3.1_6.darwin 我猜它正在下载一个大文件。
  • 看来下载需要相当长的时间,我得先去睡觉了。早上第一件事会回复你。我会让它通宵下载。
  • 一切都完成了,需要一段时间才能下载。我怎么知道它安装正确或配置正确?谢谢。
  • 天才。有用!如果没有 Stack Overflow,我们会做什么?我正在为 El Capitan 上的 ruby​​ 和自制程序更新而苦苦挣扎,这是拼图中的最后一块。
  • @Tokn:很高兴这个答案很有帮助!
【解决方案4】:

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

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

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

【讨论】:

    【解决方案5】:

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

    $ 出口 CC=gcc $ rvm 安装 1.9.3

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

    【讨论】:

      【解决方案6】:

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

      export CC=gcc
      rvm install 1.9.3
      

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

      【讨论】:

        【解决方案7】:

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

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

        【讨论】:

        • 这在执行this answer 中概述的brew 任务后对我有用。
        【解决方案8】:

        我试过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找到它

        【讨论】:

          【解决方案9】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-10-29
            • 1970-01-01
            相关资源
            最近更新 更多