0

在尝试安装 ruby​​ 1.9.2 时,出现错误:

    运行“make -j8”时出错,
    请阅读 $HOME/.rvm/log/ruby-1.9.2-p320/1372884536_make.log
    运行 make 时出现错误。停止安装。

然后日志说:

    gcc:内部错误:被杀死(程序 cc1)
    请提交完整的错误报告。
    有关说明,请参阅。
    gcc:内部错误:被杀死(程序 cc1)
    请提交完整的错误报告。
    有关说明,请参阅。
    make[1]: *** [callback-5.o] 错误 1
    make[1]: *** 等待未完成的工作....
    make[1]: *** [callback-4.o] 错误 1
    gcc:内部错误:被杀死(程序 cc1)
    请提交完整的错误报告。
    有关说明,请参阅。
    make[1]: *** [callback-2.o] 错误 1
    make[1]: 离开目录`$HOME/.rvm/src/ruby-1.9.2-p320/ext/dl/callback'
    make: *** [mkmain.sh] 错误 1

知道为什么我会收到此错误吗?我正在运行 Debian 5.0.9 lenny


答:我发现问题在于使用 8 个线程运行 make (make -j8)。由于某种原因,这在我的系统上不起作用。为了解决这个问题,我在运行之前运行了以下函数rvm install 1.9.2

make() { if [[ $@ == "-j8" ]]; then command make -j4; else command make "$@"; fi; }

this 的作用是每当make -j8运行时,该函数将其替换为make -j4 如果 this 仍然不起作用,您可以使用以下函数正常运行 make:

make() { if [[ $@ == "-j8" ]]; then command make; else command make "$@"; fi; }
4

1 回答 1

2

默认情况下,RVM 使用的线程数等于 CPU 内核数,您可以在命令行上覆盖线程数:

rvm install 1.9.2 -j 1

这将只使用一个线程来编译 ruby​​,如果编译失败并使用多个线程,这似乎是最安全的选择。

于 2013-07-03T22:08:14.600 回答