Instale o Ruby 2.0 com suporte a OpenSSL e ReadLine

12

Eu tenho uma nova Ubuntu 12.04 VM e gostaria de instalar o Ruby 2.0.0-p0. Consigo instalar o Ruby com bastante facilidade, mas não consigo fazer com 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 tenho muita certeza de 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.

Similarmente,

$ which openssl
/usr/bin/openssl

Se eu voltar à 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!

Jarrett Meyer
fonte

Respostas:

9

Na sua localização de origem cd ext/openssle , em seguida ruby extconf.rb. Isso irá gerar um makefile no diretório ext / openssl . Simplesmente make && sudo make installcrie a extensão ruby openssl e instale o .so no local apropriado.

O mesmo vale ext/readlinepara o suporte da linha de leitura.

Então você deve conseguir makeruby corretamente.

Edit : caso eu não tenha sido suficientemente claro:

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
Matty K
fonte
1
Nota: esta resposta é para criar e instalar manualmente o Ruby e seus módulos de extensão. Veja a resposta de @ chris-d para uma resposta pura baseada em apt.
Matty K
1
Fiquei preso na terceira linha, tentando makeem ext/openssl: *** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.Mesma coisa para ext/readline.
ZX9
@ ZX9 tive o mesmo problema, a solução aqui funcionou para mim.
jgon
5

Corri para 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 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
Chris D
fonte
3

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

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

Eu tentei instalar o ruby ​​com 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. tentei instalar o ruby ​​do código-fonte desde o início e tudo funcionou bem

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

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

mas eles podem ser diferentes para você.

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

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

etc-infinito
fonte
0

Ao instalar o ruby ​​2.0, é possível que a instalação do rubygems 2.0 não tenha sido concluída corretamente, devido ao 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 do rubygems foi concluída com êxito. Pode ser uma maneira melhor de corrigir esse caminho sem reinstalar, mas isso deve ser feito.

fdibartolo
fonte
1
Estou tentando uma instalação sem RVM ou RBENV. Apenas compilando a partir de fontes. Portanto, as etapas ./configure, make e make install. Obrigado mesmo assim.
Jarrett Meyer