Instale o Ruby 2.0 com suporte a OpenSSL e ReadLine

12

Tenho uma nova VM Ubuntu 12.04 e gostaria de instalar o Ruby 2.0.0-p0. Eu consigo instalar facilmente o Ruby, mas não consigo que as gemas funcionem.

$ 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

Eu tenho o SSL aberto instalado, então não sei exatamente qual é o problema.

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

Da mesma forma,

$ which openssl
/usr/bin/openssl

Se eu voltar para a instalação, há duas linhas que me preocupam.

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

Obrigado!

    
por Jarrett Meyer 27.02.2013 / 13:49

4 respostas

8

Em seu local de origem, cd ext/openssl e, em seguida, ruby extconf.rb . Isto irá gerar um makefile no diretório ext / openssl . Simplesmente make && sudo make install para construir a extensão ruby openssl , e instale o .so no local apropriado.

Ditto ext/readline para suporte à linha de leitura.

Então você deve ser capaz de make ruby corretamente.

Editar : caso eu não esteja claro o bastante:

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
    
por Matty K 09.03.2013 / 13:44
5

Eu encontrei o mesmo problema, tive que instalar os dois pacotes a seguir

libssl-dev
libreadline-dev 

na verdade eu achei que tinha que instalar os seguintes pacotes para obter o ruby 2.0.0 e o postgres 9.2 para compilar no Ubuntu 13.04 com openssl e readline, então eu pensei em compartilhá-los

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
    
por Chris D 18.07.2013 / 16:46
3

para mim, foi um caso de falta de dependências.

i pensei que eu tinha todas as dependências necessárias para instalar o ruby, mas eu também estava recebendo um erro openSSL e readline.

Eu tentei instalar o ruby com o RVM sem privilégios de root que falharam, mas me deram uma lista de dependências ausentes. Eu instalei as dependências com um gerenciador de pacotes. Eu tentei novamente a instalação do ruby da fonte desde o começo, e tudo funcionou bem

as dependências que estavam faltando, para mim, foram:

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

mas podem ser diferentes para você.

update: originalmente não lembro exatamente onde encontrei essa lista, mas uma pesquisa rápida encontrou listas semelhantes nas páginas a seguir, que também podem ajudá-lo:

link

link

    
por infinite-etcetera 10.08.2015 / 15:20
0

Ao instalar o ruby 2.0, é possível que a instalação do rubygems 2.0 não tenha sido concluída ok, por causa do openssl. Certifique-se de fornecer um caminho válido para o arquivo de configuração openssl; você poderia:

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

o caminho geralmente é $ HOME / .rvm / usr ou $ HOME / .rvm / usr / ssl

Então

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

Verifique se a instalação dos rubygems foi concluída com sucesso. Pode ser uma maneira melhor de corrigir esse caminho sem reinstalar, mas isso deve ser feito.

    
por fdibartolo 01.03.2013 / 21:14

Tags