установка gem вызывает ошибку сегментации с ruby ​​1.8.7, rbenv и другими локальными гемами - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть старый проект для поддержки на ruby ​​1.8.7, но я не могу установить пакет, потому что в настоящее время для него не установлен пакет, а попытка gem install bundler вызывает ошибку сегментации.На самом деле это не зависит от драгоценного камня, gem install <any gem> имеет тот же результат.

Несколько часов поиска в Google не дали эффекта, поэтому вот подробности:

$ 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 ***

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 08 февраля 2019

Я предполагаю, что вы пытаетесь установить последнюю версию пакета, который не поддерживает ruby ​​1.8.7 (ссылки здесь ).Попробуйте установить бандлер версии 1.7.3 или ниже.Пример: gem install bundler -v=1.17.3

0 голосов
/ 13 февраля 2019

Мне помогло использование более старой версии gcc.Вот шаги, которые я предпринял, чтобы решить проблему в моем случае:

Добавить репозитории, содержащие более старые версии gcc для Ubuntu 16.04, и установить его:

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
0 голосов
/ 08 февраля 2019

Вероятно, это проблема OpenSSL.Вы можете запустить:

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

Это даст вам чистую установку Ruby 1.8.7 с правильной информацией OpenSSL.Возможно, вы захотите сначала сделать rbenv uninstall.

Обновление:

Еще один способ решения этой проблемы - изменить source 'https://rubygems.org' на source 'http://rubygems.org' в вашем Gemfile.

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