Подтвердить что ты не робот

Ошибка сборки rbenv на Ubuntu 14.04

Я успешно установил rbenv (вместе со средствами сборки) на своем рабочем столе Ubuntu 14.04 и, похоже, работает нормально, но как только я попытаюсь установить ruby ​​2.1.1, сборка завершится неудачно:

[email protected]:~$ rbenv install 2.1.1
Downloading yaml-0.1.6.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/5fe00cda18ca5daeb43762b80c38e06e
Installing yaml-0.1.6...
Installed yaml-0.1.6 to /home/daniel/.rbenv/versions/2.1.1

Downloading ruby-2.1.1.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/e57fdbb8ed56e70c43f39c79da1654b2
Installing ruby-2.1.1...

BUILD FAILED

Inspect or clean up the working tree at /tmp/ruby-build.20140418142258.3543
Results logged to /tmp/ruby-build.20140418142258.3543.log

Last 10 log lines:
installing default ripper libraries
compiling ossl_pkcs7.c
compiling ossl_ssl.c
installing default openssl libraries
linking shared-object openssl.so
make[2]: Leaving directory `/tmp/ruby-build.20140418142258.3543/ruby-2.1.1/ext/openssl'
linking shared-object ripper.so
make[2]: Leaving directory `/tmp/ruby-build.20140418142258.3543/ruby-2.1.1/ext/ripper'
make[1]: Leaving directory `/tmp/ruby-build.20140418142258.3543/ruby-2.1.1'
make: *** [build-ext] Error 2

Содержимое файла журнала можно найти здесь: http://pastebin.com/SXxTeCJY

Я пробовал найти помощь по этой проблеме, в том числе следуя тому, что здесь сказано: https://github.com/sstephenson/ruby-build/wiki - но у меня не было никакой радости.

4b9b3361

Ответ 1

ОБНОВЛЕНИЕ: используйте Ruby 2.1.2, он исправляет эту проблему.


14.04, вероятно, поставляется с readline 6.3, который использует rl_hook_func_t вместо Function.

Эта ошибка уже сообщалась и исправлена ​​в Ruby (https://bugs.ruby-lang.org/issues/9578), но еще не выпущена.

Пока не появится Ruby 2.1.2 (который, как я полагаю, будет содержать это исправление), вы можете использовать патч для правильной поддержки нового rl_hook_func_t. Используйте это для установки Ruby 2.1.1:

curl -fsSL https://gist.github.com/mislav/a18b9d7f0dc5b9efc162.txt | rbenv install --patch 2.1.1

(Источник: http://gorails.com/setup/ubuntu/14.04)

Ответ 2

UPDATE: Ruby 2.1.2, исправляет эту проблему. Если вам нужно патчировать рубин с шеф-поваром по другой причине, следуйте примеру здесь.


Установка шеф-повара Ruby 2.1.1 на Ubuntu 14.04 с использованием LWRP

Код для исправления Ruby 2.1.1 на Trusty Ubuntu (14.04) с помощью Riotgames rbenv cookbook - вырезать и вставить - без гарантии:-) У меня есть кулинарная книга-обертка, которая протестирована на Ubuntu 14.04 (выпуск 1.0.4). Самый простой способ - это клонировать хранилище и сходиться на тестовой кухне. Основная проблема заключается в том, что поваренная книга использует Berkshelf 3.1.1, и большинство людей, вероятно, еще 2. Вложенный код должен работать на Berkshelf 2.x и 3.1.1.

Berksfile

cookbook 'rbenv', github: "RiotGames/rbenv-cookbook"

Метаданные

depends 'rbenv'

Атрибуты (attributes/default.rb)

default['ruby']['version'] = '2.1.1'

Рецепт (recipes/default.rb)

# patchutils is required to patch Ruby version
package 'patchutils'

include_recipe "rbenv::default"
include_recipe "rbenv::ruby_build"

# Installs a patched, global, ruby 
rbenv_ruby node['ruby']['version'] do
  global true
  patch "https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/45225/diff?format=diff"
end

Обсуждение патча

Рич