OpenSSL ve ReadLine desteği ile Ruby 2.0'ı yükleyin


12

Yeni bir Ubuntu 12.04 VM'im var ve Ruby 2.0.0-p0'ı kurmak istiyorum. Ruby'yi yeterince kolayca yükleyebiliyorum, ancak mücevherlerin çalışmasını sağlayamıyorum.

$ 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

Açık SSL yükledim, bu yüzden sorunun ne olduğundan tam olarak emin değilim.

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

Benzer şekilde,

$ which openssl
/usr/bin/openssl

Kuruluma geri dönersem beni ilgilendiren iki hat var.

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

Teşekkürler!

Yanıtlar:


9

Kaynak konumunuzda cd ext/opensslve sonra ruby extconf.rb. Bu , ext / openssl dizininde bir makefile oluşturur . Sadece make && sudo make installruby openssl uzantısını oluşturmak ve .so'yu uygun konuma kurmak için.

ext/readlineReadline desteği için Ditto .

O zaman makedüzgün bir şekilde yakut edebilmelisiniz .

Düzenleme : yeterince açık değildi durumda:

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
Not: Bu cevap Ruby ve genişletme modüllerini manuel olarak oluşturmak ve kurmak içindir. Saf uygun tabanlı bir cevap için @ chris-d'nin cevabına bakınız.
Matty K

1
Ben çalışıyorum, üçüncü satırda saplanıp makeiçinde ext/openssl: *** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.Aynı şey için ext/readline.
ZX9

ZX9 Ben aynı problem vardı @, çözüm burada benim için çalıştı.
jgon

5

Aynı sorunla karşılaştım, aşağıdaki iki paketi kurmak zorunda kaldım

libssl-dev
libreadline-dev 

aslında ben ubuntu 13.04 üzerinde openssl ve readline ile derlemek için ruby ​​2.0.0 ve postgres 9.2 almak için aşağıdaki paketleri yüklemek zorunda buldum bu yüzden onları paylaşmak düşündüm

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

benim için bu bağımlılık eksikliğiydi.

i ruby yüklemek için gereken tüm bağımlılıklar vardı, ama ben de bir openSSL ve readline hata alıyordu düşündüm .

başarısız oldu ama bana eksik bağımlılıklar bir listesini verdi kök ayrıcalıkları olmadan RVM ile ruby ​​yüklemeye çalıştı. i sonra bağımlılıkları bir paket yöneticisi ile yükledi. Daha sonra ruby'yi baştan baştan yüklemeye çalıştım ve her şey yolunda gitti

eksik olan bağımlılıklar benim için:

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

ama sizin için farklı olabilirler.

Güncelleme: Başlangıçta bu listeyi tam olarak nerede bulduğumu hatırlamıyorum, ancak hızlı bir arama aşağıdaki sayfalarda da size yardımcı olabilecek benzer listeler buldu:

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'ı yüklerken, rubygems 2.0 kurulumunun openssl nedeniyle tamamlanmamış olması mümkündür. Openssl yapılandırma dosyasına geçerli bir yol sağladığınızdan emin olun; yapabilirdin:

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

yol genellikle $ HOME / .rvm / usr veya $ HOME / .rvm / usr / ssl şeklindedir.

Sonra

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

Rubygems kurulumunun başarıyla tamamlandığından emin olun. Yeniden yüklemeden bu yolu düzeltmenin daha iyi bir yolu olabilir, ancak bunu yapmalıdır.


1
RVM veya RBENV olmadan bir yükleme deniyorum. Sadece kaynaklardan derleme. Bu nedenle ./configure, make ve install adımlarını gerçekleştirin. Yine de teşekkürler.
Jarrett Meyer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.