Ruby ubuntu14.04上的rbenv构建失败

Ruby ubuntu14.04上的rbenv构建失败,ruby,ubuntu,rbenv,Ruby,Ubuntu,Rbenv,我已经在我的Ubuntu14.04桌面上成功安装了rbenv(以及构建工具),看起来工作正常,但我一尝试安装ruby 2.1.1,构建就失败了: daniel@grape:~$ rbenv install 2.1.1 Downloading yaml-0.1.6.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/5fe00cda18ca5daeb43762b80c38e06e Installing yaml-0.1.6... Installe

我已经在我的Ubuntu14.04桌面上成功安装了rbenv(以及构建工具),看起来工作正常,但我一尝试安装ruby 2.1.1,构建就失败了:

daniel@grape:~$ 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
可以在此处找到日志文件的内容:


我已经搜索了一些关于这个问题的帮助,包括以下内容:-但我没有任何乐趣。

更新:使用Ruby 2.1.2,它修复了这个问题


14.04可能与readline 6.3一起提供,它使用
rl\u hook\u func\t
而不是
函数

Ruby()中已经报告并修复了这个bug,但尚未发布

在Ruby 2.1.2发布之前(我假设它将包含此修复程序),您可以使用来正确支持新的
rl\u hook\u func\t
方法。使用此选项安装Ruby 2.1.1:

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

(来源:)

更新:Ruby 2.1.2修复了此问题。如果出于其他原因需要使用Chef修补ruby,请遵循下面的示例


Chef将Ruby 2.1.1安装到Ubuntu 14.04上,使用 使用-cut-and-pasted-no-warranty:-)在可信的Ubuntu(14.04)上修补Ruby 2.1.1的代码。最简单的方法是克隆存储库并将其聚合到测试厨房。主要的问题是,烹饪书使用了Berkshelf 3.1.1,大多数人可能仍然使用2。粘贴的代码应该在Berkshelf 2.x和3.1.1上工作

伯克斯菲尔

元数据

属性(Attributes/default.rb)

配方(配方/default.rb)


Rich

您是否运行了
apt get install autoconf bison build essential libssl dev libyaml dev libreadline6 libreadline6 dev zlib1g zlib1g dev
?是的,但下面发布的解决方案为我修复了它:)非常感谢您,我已经为此奋斗了很长一段时间了!如果我使用chef LWRP execute运行该命令,我会得到“rbenv:notfound”。如果我直接登录并运行它,它就会工作。我如何使用rbenv_ruby来构建它?@markhorrocks-在修补ruby之前,您需要在LWRP中添加支持。似乎有拉和叉支持各种rbenv烹饪书,但尚未在主分支中看到修复。我使用riotgames/rbenv烹饪书和。我如何将叉子与Berkshelf一起使用?在Bershelf中使用叉子听起来像是一个新问题:-)然而,好消息是,叉子现在进入了riot games master分支。见下面的答案。
cookbook 'rbenv', github: "RiotGames/rbenv-cookbook"
depends 'rbenv'
default['ruby']['version'] = '2.1.1'
# 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