Instal Ruby 2.0 dengan dukungan OpenSSL dan ReadLine

12

Saya memiliki Ubuntu 12,04 VM baru, dan saya ingin menginstal Ruby 2.0.0-p0. Saya dapat menginstal Ruby dengan cukup mudah, tetapi saya tidak dapat membuat permata berfungsi.

$ 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

Saya telah menginstal SSL terbuka, jadi saya tidak yakin apa masalahnya.

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

Demikian pula,

$ which openssl
/usr/bin/openssl

Jika saya kembali ke instalasi, ada dua baris yang menjadi perhatian saya.

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

Terima kasih!

Jarrett Meyer
sumber

Jawaban:

9

Di lokasi sumber Anda, cd ext/openssllalu ruby extconf.rb. Ini akan menghasilkan makefile di direktori ext / openssl . Cukup make && sudo make installuntuk membangun ekstensi openssl ruby , dan instal .so ke lokasi yang sesuai.

Ditto ext/readlineuntuk dukungan readline.

Maka Anda harus bisa makemenggosok dengan benar.

Sunting : kalau-kalau saya tidak cukup jelas:

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
sumber
1
Catatan: jawaban ini untuk membangun dan menginstal Ruby secara manual dan modul ekstensinya. Lihat jawaban @ chris-d untuk jawaban murni berbasis apt.
Matty K
1
Saya terjebak di baris ketiga, mencoba makemasuk ext/openssl: *** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.Hal yang sama ext/readline.
ZX9
@ ZX9 Saya punya masalah yang sama, solusi di sini bekerja untuk saya.
jgon
5

Saya mengalami masalah yang sama, saya harus menginstal dua paket berikut

libssl-dev
libreadline-dev 

sebenarnya saya menemukan saya harus menginstal paket-paket berikut untuk mendapatkan ruby ​​2.0.0 dan postgres 9.2 untuk dikompilasi di ubuntu 13.04 dengan openssl dan readline jadi saya pikir saya akan membagikannya

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
sumber
3

bagi saya itu adalah kasus ketergantungan yang hilang.

Saya pikir saya memiliki semua dependensi yang diperlukan untuk menginstal ruby, tetapi saya juga mendapatkan kesalahan openSSL dan readline.

saya mencoba untuk menginstal ruby ​​dengan RVM tanpa hak akses root yang gagal tetapi memberi saya daftar dependensi yang hilang. Saya kemudian menginstal dependensi dengan manajer paket. saya kemudian mencoba menginstal ulang ruby ​​dari sumber dari awal, dan semuanya bekerja dengan baik

dependensi yang hilang, bagi saya, adalah:

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

tetapi mereka mungkin berbeda untuk Anda.

pembaruan: saya awalnya tidak ingat di mana tepatnya saya menemukan daftar ini, tetapi pencarian cepat menemukan daftar serupa di halaman-halaman berikut, yang mungkin juga membantu Anda:

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

infinite-dan sebagainya
sumber
0

Saat memasang ruby ​​2.0, ada kemungkinan instalasi rubygems 2.0 tidak selesai ok, karena openssl. Pastikan Anda memberikan jalur yang valid ke file konfigurasi openssl; Anda bisa:

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

path biasanya $ HOME / .rvm / usr atau $ HOME / .rvm / usr / ssl

Kemudian

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

Pastikan instalasi rubygems selesai dengan sukses. Mungkin ada cara yang lebih baik untuk memperbaiki jalur itu tanpa menginstal ulang, tetapi ini harus dilakukan.

fdibartolo
sumber
1
Saya mencoba menginstal tanpa RVM atau RBENV. Hanya kompilasi dari sumber. Oleh karena itu ./configure, buat, dan buat langkah-langkah instal. Terima kasih.
Jarrett Meyer