【问题标题】:What's the best way to compile Ruby from source on 64-bit RedHat Linux在 64 位 RedHat Linux 上从源代码编译 Ruby 的最佳方法是什么
【发布时间】:2009-01-09 14:04:56
【问题描述】:

在 RedHat Enterprise Linux 5 上,可通过 RPM 获得的最新 Ruby 版本是 1.8.5。我的 Rails 应用需要 1.8.6 或更高版本,所以我需要从源代码编译 Ruby。

我尝试了以下方法来构建它,它似乎可以构建,但是在尝试运行需要 RubyInline 的插件时,我看到 gcc 编译错误。

似乎缺乏从源代码构建 Ruby 以适合运行 Rails 应用程序的体面文档。

这是我编译 Ruby 的方法:

./configure --prefix=/usr --with-openssl-include=/usr/include/openssl --with-openssl-lib=/usr/lib64/openssl/engines
make
sudo make install

我想知道在 64 位系统上构建它是否需要特定的编译标志。我看到的实际错误是

 error executing "gcc -shared   -fPIC -g -O2   -I /usr/lib/ruby/1.8/x86_64-linux  -I /usr/include -L/usr/lib -o \"/home/deploy/.ruby_inline/Inline_ImageScience_aa58.so\" \"/home/deploy/.ruby_inline/Inline_ImageScience_aa58.c\" -lfreeimage -lstdc++ ":

任何建议将不胜感激

【问题讨论】:

  • 它是否提供了更多错误消息,因为您引用的内容并不能真正帮助查明问题?
  • 你不应该将 -m64 传递给 gcc 吗?

标签: ruby-on-rails ruby linux 64-bit makefile


【解决方案1】:

最好的方法可能是从 Fedora 中“窃取”一个 Ruby 1.8.6 RPM。第二个最好的方法是从 Fedora 窃取一个 Ruby 1.8.6 SRPM 并自己构建它。

但是,您可以做一件事:将--disable-pthread 标志添加到configure 行并删除--enable-pthread(如果存在)。 --enable-pthread 使 MRI 显着变慢,只有当你想使用 Ruby/Tk 并且你的系统的 Tk 库是用 --enable-pthread 构建时才需要。

【讨论】:

    【解决方案2】:

    Ruby packages for Fedora(包括 SRPM)

    无法对正确答案发表评论,因此在此处添加 - 编辑可以随意整理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多