2012-01-25 51 views
3

红宝石一直使用考拉宝石交谈over HTTP时,段错误:持久性的Ruby安装段错误

/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的版本,并与自制安装了它,而不是(与MacPorts的,它安装了自己的OpenSSL版本)
  • 运行openssl version回报OpenSSL 1.0.0g 18 Jan 2012
  • 我从RVM中删除了Ruby 1.9.3,并尝试使用下面的Luciano的方法。
  • 我也试着从RVM重新安装1.9.3,并指定--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/(这是我的上述步骤,实际上)。我也读过克里斯托弗以前的文章here
  • 时,我跑那么下面我得到预期的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

我需要一些更多的想法,我还可以尝试什么,或者我错过了什么。

+0

我删除了'〜/ .rvm' dir nad从rvm('rvm pkg install openssl')安装了rvm,ruby和'openssl'软件包并开始正常工作 – fl00r

+0

您的意思是运行'rvm implode'?你的'rvm install ruby​​ 1.9.3'标志看​​起来如何? – Simpleton

+0

我不知道'implode'。我删除了rvm dir manualy'rm -rf〜/ .rvm',然后再安装rvm,然后'rvm pkg install openssl','rvm pkg install iconv','rvm install 1.9.2 --with-openssl-dir = $ rvm_path/usr --with-iconv-dir = $ rvm_path/usr'(是的,大约是1.9.2,但我认为它没有区别) – fl00r

回答

2

问题似乎是Homebrew和MacPorts冲突,所以我删除了MacPorts,删除了所有包和/opt/local/目录。由于Homebrew上的PostgreSQL安装,这导致了一些问题,其中包括PG宝石。

所以我删除了Postgres公式,然后重新安装它,并使用Homebrew安装OpenSSL。

之后,我崩溃了RVM,并再次安装它和我的红宝石(不知道这一步是否有必要),最后它能正常工作。

+0

我想你应该接受你的答案,然后! – jupp0r

+0

它通常说你只能在提交后2天内接受。猜猜这只是一个新鲜的问题。 – Simpleton

7

我也遇到了同样的分段错误错误,但我试图列出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说,我写在错误的地方注释。现在我正在编辑一个响应。 ;-)
+0

谢谢你尝试类似的重新安装后为我工作。关于你的rvm安装线有些有趣,复制/粘贴不起作用,可能是一些特殊字符。不管怎样,谢谢。 – Amala

+0

@Luciano仍然给你赏金,因为这个答案可能适用于没有MacPorts/Homebrew冲突的人。 – Simpleton

+0

在Lion上,我不得不在编译之前运行'''export CC =/usr/bin/gcc'''。通过[Jeff Douglas]找到(http://blog.jeffdouglas.com/2011/08/01/ruby-1-9-2-install-errors-with-mac-os-x-lion-and-rvm/) – Forrest

0

我也遇到过这个问题,但使用了不同的解决方案。这里是full stack trace of the error

以下是官方错误报告:http://bugs.ruby-lang.org/issues/6184堆栈跟踪下的响应非常有帮助。

如果您使用的是OS X的默认openssl - >像brew install openssl那样,并使用安装的openssl进行构建,然后重试。

如果您使用的是由用户安装的openssl - >使用OS X默认ssl构建并重试。

这听起来类似于我最近的一个问题,当时readline library installed in MacPorts broke a ruby installation。运行下面的脚本就碎红宝石安装显示它加载的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的出/opt/local在安装红宝石。

  1. 退出所有正在访问MacPorts文件的进程。你可以看到哪些与sudo lsof | grep /opt/local运行。
  2. sudo mv /opt/local /opt/localbak
  3. 打开一个新的终端,然后编译并安装Ruby
  4. sudo mv /opt/localbak /opt/local

之后,红宝石安装工作沿着正确的MacPorts并没有加载从MacPorts的的的libssl文件。