2

在 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++ ":

任何建议将不胜感激

4

2 回答 2

2

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

但是,您可以做一件事:在--disable-pthread该行中添加一个标志,如果存在则将其configure删除。使 MRI显着变慢,并且仅当您想使用 Ruby/Tk 并且系统的 Tk 库是用.--enable-pthread--enable-pthread--enable-pthread

于 2009-01-09T14:48:52.337 回答
0

Fedora 的 Ruby 包(包括 SRPM)

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

于 2010-02-02T06:23:35.443 回答