OpenSSL 및 ReadLine 지원으로 Ruby 2.0 설치


12

새로운 Ubuntu 12.04 VM이 있고 Ruby 2.0.0-p0을 설치하고 싶습니다. 루비를 쉽게 설치할 수는 있지만 보석이 작동하지 않습니다.

$ gem install bundler
ERROR:  Loading command: install (LoadError)
cannot load such file -- openssl
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

SSL을 설치 했으므로 문제가 무엇인지 정확히 알 수 없습니다.

$ sudo apt-get install libssl1.0.0 libssl-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libssl-dev is already the newest version.
libssl1.0.0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

비슷하게,

$ which openssl
/usr/bin/openssl

설치로 돌아 가면 두 가지 라인이 있습니다.

$ sudo make install
Failed to configure openssl. It will not be installed.
Failed to configure readline. It will not be installed.

감사!

답변:


9

소스 위치에서, cd ext/openssl다음 ruby extconf.rb. ext / openssl 디렉토리에 makefile이 생성됩니다 . 간단히 make && sudo make installruby openssl 확장 을 빌드 하고 적절한 위치에 .so를 설치하십시오.

ext/readlinereadline 지원을위한 Ditto .

그런 다음 make루비를 올바르게 짤 수 있어야합니다 .

편집 : 내가 충분히 명확하지 않은 경우 :

pushd ext/openssl
ruby extconf.rb
make && sudo make install
popd

pushd ext/readline
ruby extconf.rb
make && sudo make install
popd

make
sudo make install

1
참고 :이 답변은 Ruby 및 해당 확장 모듈을 수동으로 빌드하고 설치하기위한 것입니다. 순수한 apt 기반 답변은 @ chris-d의 답변을 참조하십시오.
Matty K

1
내가하려고, 세 번째 줄에 붙어있어 make에서 ext/openssl: *** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.같은 일을 위해 ext/readline.
ZX9 December

ZX9 저도 같은 문제를 겪고 @,이 솔루션은 여기에 날 위해 일했습니다.
jgon

5

같은 문제가 발생하여 다음 두 패키지를 설치해야했습니다.

libssl-dev
libreadline-dev 

사실 ruby ​​2.0.0과 postgres 9.2를 openssl과 readline으로 우분투 13.04에서 컴파일하려면 다음 패키지를 설치해야한다는 것을 알았습니다.

sudo apt-get -y update
sudo apt-get install -y make g++
sudo apt-get install -y curl git-core python-software-properties
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev
sudo apt-get install -y libgdbm-dev libreadline6-dev libncurses5-dev
sudo apt-get install -y libpq-dev libffi-dev

3

나를 위해 그것은 종속성이없는 경우였습니다.

내가 생각 나는 모든 종속성이 루비를 설치하는 데 필요한했다,하지만 난 너무은 OpenSSL과 readline에 오류가 발생했습니다.

루트 권한없이 RVM으로 루비를 설치하려고했지만 실패한 종속성 목록이 표시되었습니다. 그런 다음 패키지 관리자로 종속성을 설치했습니다. 그런 다음 처음부터 소스에서 루비를 다시 설치하려고 시도했지만 모든 것이 정상적으로 작동했습니다.

나를 위해 누락 된 종속성은 다음과 같습니다.

patch libyaml-devel autoconf gcc-c++ readline-devel libffi-devel openssl-devel automake libtool bison sqlite-devel

그러나 그들은 당신을 위해 다를 수 있습니다.

업데이트 : 원래이 목록을 정확히 어디에서 찾았는지 기억하지 못하지만 빠른 검색은 다음 페이지에서 비슷한 목록을 찾았습니다.

https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-on-centos-6-with-rvm

http://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/install-ruby-on-rails-on-centos-ubuntu-fedora-from-source.html


0

ruby 2.0을 설치할 때, openssl로 인해 rubygems 2.0 설치가 완료되지 않았을 수 있습니다. openssl 구성 파일에 유효한 경로를 제공하십시오. 당신은 할 수 있습니다 :

find . -type f -name "openssl.cnf"

경로는 대개 $ HOME / .rvm / usr 또는 $ HOME / .rvm / usr / ssl입니다.

그때

[sudo] rvm reinstall ruby-2.0.0-p0 --with-openssl-dir=[openssl.cnf path] --verify-downloads 1

rubygems 설치가 성공적으로 완료되었는지 확인하십시오. 다시 설치하지 않고 해당 경로를 수정하는 더 좋은 방법 일 수 있지만 이렇게해야합니다.


1
RVM 또는 RBENV없이 설치를 시도하고 있습니다. 소스에서 컴파일하기 만하면됩니다. 따라서 ./configure, make 및 install 단계를 수행하십시오. 그래도 감사합니다.
Jarrett Meyer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.