gem install使用ruby 1.8.7,rbenv和其他本地宝石引发了分段错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gem install使用ruby 1.8.7,rbenv和其他本地宝石引发了分段错误相关的知识,希望对你有一定的参考价值。

我有一个旧的项目维护ruby 1.8.7,但我无法安装bundle,因为目前没有安装捆绑器,并尝试gem install bundler引发Segmentation故障。事实上它不依赖于宝石,gem install <any gem>也有相同的结果。

几个小时的谷歌搜索无效,所以这里有详细信息:

$ gem install bundler
/home/marat/.rbenv/versions/1.8.7-p352/lib/ruby/1.8/timeout.rb:60: [BUG] Segmentation fault
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
Aborted

环境细节:

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.6.2
  - RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
  - INSTALLATION DIRECTORY: /home/marat/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /home/marat/.rbenv/versions/1.8.7-p352/bin/ruby
  - EXECUTABLE DIRECTORY: /home/marat/.rbenv/versions/1.8.7-p352/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /home/marat/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8
     - /home/marat/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

目前没有本地宝石:

$ gem list

*** LOCAL GEMS ***

有任何想法吗?

答案

这可能是一个OpenSSL问题。你可以运行:

CONFIGURE_OPTS="--with-openssl-dir=/opt/local" rbenv install 1.8.7

这将为您提供具有正确OpenSSL信息的Ruby 1.8.7的干净安装。你可能想先做rbenv uninstall

更新:

另一种解决方法是在你的Gemfile中将source 'https://rubygems.org'更改为source 'http://rubygems.org'

另一答案

我的猜测是你正在尝试安装不支持ruby 1.8.7(refs here)的最新版本的bundler。尝试安装捆绑包版本1.7.3或更低版本。示例:gem install bundler -v=1.17.3

另一答案

使用旧版本的gcc帮助了我。以下是我在我的案例中解决问题的步骤:

为Ubuntu 16.04添加包含旧版本gcc的存储库并安装它:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt install gcc-4.4

使用旧版gcc构建项目:

rbenv uninstall 1.8.7-p352
CC=/usr/bin/gcc-4.4 rbenv install 1.8.7-p352
CC=/usr/bin/gcc-4.4 rbenv local 1.8.7-p352

以上是关于gem install使用ruby 1.8.7,rbenv和其他本地宝石引发了分段错误的主要内容,如果未能解决你的问题,请参考以下文章

无法在ruby 1.8.7-p374中安装宝石

如何在suse linux中安装redis集群

gem install mongrel 使用 ruby​​ 1.9.1 失败

ruby gem install显示错误(Gem::RemoteFetcher::FetchError)

gem install 无法从 ruby​​gems.org 下载

ruby nokogiri gem install mac osx high sierra