Вопрос по linux, bundler, gcc, rvm, ruby – установить пакет с помощью rvm, ruby 1.8.7 с gcc 4.7 на linux

6

Проблемы с сборкой ruby 1.8.7 или установкой гема компоновщика с GCC 4.7 в Linux (Fedora 17, Arch и т. Д.). Эта проблема возникла для меня при использовании RVM. Мне удалось установить 1.8.7, но я не смог установить gem bundler. Я получил бы следующую ошибку:

$ gem install bundler

~/.rvm/rubies/ruby-1.8.7-p358/lib/ruby/1.8/timeout.rb:60: [BUG] Segmentation fault
ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]

эта проблема описана в нескольких местах, в том числе:

ruby-enterprise 1.8.7-12: timeout.rb:60: [BUG] Segmentation fault Ruby gem install is seg faulting rvm install rbx fails on archlinux (mri 1.8 + gcc 4.7 issue) ruby1.8: segfaults when compiled with gcc-4.7 Ruby 1.8.7 fails to build (Arch Linux, gcc > 4.6)

Ваш Ответ

2   ответа
1

я хотел бы убедиться, что у вас есть стабильный выпуск, выпущенный по состоянию на сегодня, 30 мая 2012 года, который является 4.7.0, а НЕ одним из предыдущих выпусков 4.7, которые не были стабильными выпусками. RVM придерживается политики не поддерживать нестабильные выпуски (версии разработки) GCC по той причине, что мы не компиляторы, хе-хе.

Затем, кроме того, пожалуйста, удалите и переустановите исходную версию 1.8.7. Другой вариант состоит в том, чтобы 'rvm переустановить 1.8.7' хотя не все предыдущие параметры конфигурации могут быть восстановлены, чтобы включить принятие измененной переменной CFLAGS, как записано в конфигурации. @mpapis, нужно ли нам защищать использование --autoconf --force здесь?

(mpapis и я - разработчики проекта RVM, так что это отличное место для обсуждения флагов и мониторинга, чтобы узнать, что нужно сделать, чтобы мы могли передать информацию всем, кто к нам приходит по этому поводу)

Я видел-O2 исправить где-то уже, я думаю, для более старых рубинов, мы можем расширить для GCC47 на любой 1.8 рубин. Что касается компиляторов, не помеченных как стабильные - я бы предположил, что они могут выйти из строя, и о любых ошибках / проблемах следует сначала сообщать группе разработчиков компилятора.
да, определенно не собираюсь поддерживать нестабильные выпуски цепочек компиляторов. Там будут драконы. Мы оставим это парням на самом деле хорошо с внутренностями компилятора. Хотя было бы неплохо, если бы по пути мы могли найти оптимальные параметры компилятора для каждой версии Ruby Major.Minor, в которой не было бы «скрыто» & apos; проблемы. (-funroll -loops назад в тот день, кто-нибудь? хе-хе). Нечто подобное могло бы пригодиться для документирования с течением времени на странице часто задаваемых вопросов по RVM. Кто-нибудь из разработчиков Ruby хочет подключиться?
18

ть более старые версии gcc для сборки 1.8.7,this is not necessary.

$ rvm remove 1.8.7
$ CFLAGS="-O2 -fno-tree-dce -fno-optimize-sibling-calls" rvm install 1.8.7
$ rvm use 1.8.7
$ gem install bundler

Решение получено из следующего:

Ошибка № 6383: ошибка в модуле Timeout при компиляции с GCC 4.7

Это единственное решение, которое работало для меня с использованием: OS X 10.7.4

Похожие вопросы