Постоянный рубиновый сегмент после чистой установки - PullRequest
3 голосов
/ 25 января 2012

Ruby сохраняет ошибки при использовании гема Koala для общения по HTTP:

/Users/pawel/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799: [BUG] Segmentation fault

Я пробовал следующее:

  • Запустите which -a ruby, который показал несколько Рубинов через MacPorts. Поэтому я удалил их и снова выполнил ту же команду: /usr/bin/ruby
  • Я удалил версию PostgreSQL для MacPorts и вместо нее установил ее с Homebrew (В MacPorts устанавливается собственная версия OpenSSL)
  • Бег openssl version возвращает OpenSSL 1.0.0g 18 Jan 2012
  • Я удалил Ruby 1.9.3 из RVM и попробовал метод Лусиано ниже, который не работал.
  • Я также пытался переустановить 1.9.3 из RVM и указать --with-openssl-dir=/opt/local, поскольку which openssl возвращает /opt/local/bin/openssl
  • Я переустановил RVM (теперь это версия 1.10.2 в /Users/pawel/.rvm/bin/rvm)
  • Я обновился до Ruby 1.9.3-p125, а также попробовал 1.9.2
  • Я следовал инструкциям здесь: http://www.christopherirish.com/2011/09/02/ruby-1-9-2-segmentation-fault-and-openssl/ (которые являются моими вышеупомянутыми шагами, на самом деле). Я также прочитал предыдущий пост Кристофера здесь .
  • В моем каталоге проектов, когда я запускаю следующее, я получаю ожидаемое 0.:

    ruby -rubygems -e" require 'eventmachine'; require 'openssl' "; echo $?

  • Я пытался sudo port -f deactivate openssl, но затем, когда я пытаюсь запустить сервер Rails, я получаю Library not loaded: /opt/local/lib/libssl.1.0.0.dylib

Мне нужно больше идей о том, что еще можно попробовать, или о вещах, которые я пропустил.

Ответы [ 3 ]

7 голосов
/ 25 января 2012

Я также получаю эту ошибку ошибки сегментации, но пытаюсь перечислить файлы на AWS-S3.

Редактировать

Этот способ работал для меня:

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:$HOME/.rvm/bin
rvm remove 1.9.3 
rvm pkg install iconv
rvm pkg install openssl
rvm install ruby-1.9.3 --with-openssl-dir=~/.rvm/usr --with-iconv-dir=~/.rvm/usr
  • как сказал @Simpleton, я написал комментарий не в том месте. Сейчас я редактирую это с ответом. ; -)
2 голосов
/ 20 февраля 2012

Проблема заключалась в том, что Homebrew и MacPorts конфликтовали, поэтому я удалил MacPorts, удалил все пакеты и каталог /opt/local/.Это вызвало некоторые проблемы с гемом PG из-за установки PostgreSQL на Homebrew.

Поэтому я удалил формулу Postgres, затем переустановил ее и то же самое для установки OpenSSL с помощью Homebrew.

После этого я развернул RVM и снова установил его и мои Ruby (не уверен, был ли необходим этот шаг), и, наконец, он работает.

0 голосов
/ 25 марта 2012

Я тоже столкнулся с этой проблемой, но использовал другое решение.Вот полная трассировка ошибки .

Вот официальный отчет об ошибке: http://bugs.ruby -lang.org / Issues / 6184 Ответы под трассировкой стека были очень полезны.

Есливы используете OS X по умолчанию openssl -> сделайте как brew install openssl и соберите с установленным openssl, затем попробуйте снова.

Если вы используете openssl, который установлен пользователем -> соберите с OS X по умолчанию ssl ипопробуйте еще раз.

Это звучало похоже на проблему для меня недавно, когда библиотека readline, установленная в MacPorts, прервала установку ruby ​​.Выполнение следующего сценария на сломанной установке ruby ​​показало, что он загружает MacPorts openssl lib

require 'net/https'
puts `lsof -p #{$$} | grep ssl | awk '{print $9}'`

(вывод)

/Users/john/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/x86_64-darwin11.2.0/openssl.bundle
/opt/local/lib/libssl.1.0.0.dylib

Решением было временное перемещение MacPorts из * 1025.* при установке ruby.

  1. Закройте все процессы, которые обращаются к файлам MacPorts.Вы можете увидеть, какие из них работают с sudo lsof | grep /opt/local.
  2. sudo mv /opt/local /opt/localbak
  3. Откройте новый терминал, затем скомпилируйте и установите Ruby
  4. sudo mv /opt/localbak /opt/local

После этого установка ruby ​​работала правильно вместе с MacPorts и не загружала файл libssl из MacPorts.

...