Какой лучший способ скомпилировать Ruby из исходного кода на 64-битном RedHat Linux - PullRequest
2 голосов
/ 09 января 2009

В RedHat Enterprise Linux 5 последняя версия Ruby, доступная через RPM, - это 1.8.5. Моему приложению Rails требуется 1.8.6 или выше, поэтому мне нужно скомпилировать Ruby из исходного кода.

Я попробовал следующее, чтобы собрать его, и похоже, что он работает нормально, но затем я вижу ошибки компиляции gcc при попытке запустить плагин, который требует RubyInline.

Кажется, что не хватает достойной документации для сборки 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++ ":

Любой совет будет принята с благодарностью

Ответы [ 2 ]

2 голосов
/ 09 января 2009

Лучшим способом, вероятно, было бы просто "украсть" Ruby 1.8.6 RPM от Fedora. Второй лучший способ - украсть SRPM-версию Ruby 1.8.6 у Fedora и собрать ее самостоятельно.

Однако есть одна вещь, которую вы можете сделать: добавить флаг --disable-pthread в строку configure и удалить --enable-pthread, если он там есть. --enable-pthread делает MRI значительно медленнее и требуется только в том случае, если вы хотите использовать Ruby / Tk и библиотека Tk вашей системы была создана с --enable-pthread.

0 голосов
/ 02 февраля 2010

Пакеты Ruby для Fedora (включая SRPM)

Не удалось опубликовать комментарий к правильному ответу, добавленному здесь - редакторы могут свободно вносить исправления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...