문제

I've successfully installed rbenv (along with the build tools) on my Ubuntu 14.04 desktop, and that appears to be working fine, but as soon as I try to install ruby 2.1.1, the build fails:

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

The contents of the log file can be found here: http://pastebin.com/SXxTeCJY

I've done some searching for help with this issue, including following what is said here: https://github.com/sstephenson/ruby-build/wiki - but I've not had any joy.

도움이 되었습니까?

해결책

UPDATE: Use Ruby 2.1.2, it fixes this issue.


14.04 is probably shipping with readline 6.3, which uses rl_hook_func_t instead of Function.

This bug has already been reported and fixed in Ruby (https://bugs.ruby-lang.org/issues/9578), but not released yet.

Until Ruby 2.1.2 comes out (which I assume will contain this fix), you can use a patch to properly support the new rl_hook_func_t method. Use this to install Ruby 2.1.1:

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

(Source: http://gorails.com/setup/ubuntu/14.04)

다른 팁

UPDATE: Ruby 2.1.2, fixes this issue. If you need to patch ruby with Chef for another reason follow the example here.


Chef installation of Ruby 2.1.1 on to Ubuntu 14.04 using LWRP

Code to patch Ruby 2.1.1 on Trusty Ubuntu (14.04) using Riotgames rbenv cookbook - cut and pasted - no warranty :-) I have a wrapper cookbook which is tested on Ubuntu 14.04 (release 1.0.4). Easiest way is get this going is to clone the repository and converge it on test kitchen. The main gotcha is that the cookbook uses Berkshelf 3.1.1 and most people are probably on 2 still. The pasted code should work on Berkshelf 2.x and 3.1.1.

Berksfile

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

Metadata

depends 'rbenv'

Attributes (attributes/default.rb)

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

Recipe (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

Discussion for patch

Rich

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top