Installieren Sie Ruby 2.0 mit OpenSSL- und ReadLine-Unterstützung


12

Ich habe eine neue Ubuntu 12.04 VM und möchte Ruby 2.0.0-p0 installieren. Ich kann Ruby leicht genug installieren, aber ich kann Edelsteine ​​nicht zum Laufen bringen.

$ 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

Ich habe Open SSL installiert, daher bin ich mir nicht ganz sicher, wo das Problem liegt.

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

Ähnlich,

$ which openssl
/usr/bin/openssl

Wenn ich zur Installation zurückkehre, gibt es zwei Zeilen, die mich betreffen.

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

Vielen Dank!

Antworten:


9

In Ihrem Quellspeicherort cd ext/opensslund dann ruby extconf.rb. Dadurch wird ein Makefile im Verzeichnis ext / openssl erstellt . Einfach make && sudo make install, um die ruby openssl- Erweiterung zu erstellen und die .so-Datei an der entsprechenden Stelle zu installieren.

Das Gleiche gilt ext/readlinefür die Readline-Unterstützung.

Dann sollten Sie in der Lage sein, makerichtig zu rubinieren.

Edit : falls ich nicht klar genug war:

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
Hinweis: Diese Antwort dient zum manuellen Erstellen und Installieren von Ruby und seinen Erweiterungsmodulen. Siehe @ chris-ds Antwort für eine reine Antwort auf Apt-Basis.
Matty K

1
Ich habe in der dritten Zeile stecken, versuchen, makein ext/openssl: Das *** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.Gleiche gilt für ext/readline.
ZX9,

@ ZX9 Ich hatte das gleiche Problem, die Lösung hier hat bei mir funktioniert.
jgon

5

Ich bin auf dasselbe Problem gestoßen und musste die folgenden beiden Pakete installieren

libssl-dev
libreadline-dev 

Tatsächlich musste ich die folgenden Pakete installieren, um Ruby 2.0.0 und Postgres 9.2 auf Ubuntu 13.04 mit Openssl und Readline zu kompilieren. Ich dachte, ich würde sie teilen

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

Für mich war es ein Fall von fehlenden Abhängigkeiten.

Ich dachte, ich hätte alle Abhängigkeiten, die benötigt werden, um Ruby zu installieren, aber ich bekam auch einen OpenSSL- und Readline-Fehler.

Ich habe versucht, Ruby mit RVM ohne Root-Rechte zu installieren, was fehlgeschlagen ist, aber ich habe eine Liste der fehlenden Abhängigkeiten erhalten. Ich habe dann die Abhängigkeiten mit einem Paket-Manager installiert. Ich habe dann erneut versucht, Ruby von Anfang an von der Quelle zu installieren, und alles funktionierte in Ordnung

Die Abhängigkeiten, die für mich fehlten, waren:

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

aber sie können für Sie unterschiedlich sein.

Update: Ich erinnere mich ursprünglich nicht, wo genau ich diese Liste gefunden habe, aber eine schnelle Suche ergab ähnliche Listen auf den folgenden Seiten, die Ihnen auch helfen könnten:

https://www.digitalocean.com/community/tutorials/installationsanleitung-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

Bei der Installation von Ruby 2.0 ist es möglich, dass die Installation von Rubygems 2.0 aufgrund von openssl nicht ordnungsgemäß abgeschlossen wurde. Stellen Sie sicher, dass Sie einen gültigen Pfad zur Konfigurationsdatei openssl angeben. du könntest:

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

Pfad ist normalerweise $ HOME / .rvm / usr oder $ HOME / .rvm / usr / ssl

Dann

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

Stellen Sie sicher, dass die Rubygems-Installation erfolgreich abgeschlossen wurde. Könnte ein besserer Weg sein, diesen Pfad ohne Neuinstallation zu reparieren, aber dies sollte es tun.


1
Ich versuche eine Installation ohne RVM oder RBENV. Nur aus Quellen kompilieren. Daher die Schritte ./configure, make und make install. Trotzdem danke.
Jarrett Meyer
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.