web-dev-qa-db-ja.com

OpenSSLおよびReadLineサポート付きのRuby 2.0をインストールします

新しいUbuntu 12.04 VMがあります。Ruby 2.0.0-p0をインストールします。 Rubyは簡単にインストールできますが、gemを動作させることはできません。

$ 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

オープンSSLをインストールしているので、問題が何であるか正確にはわかりません。

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

同様に、

$ which openssl
/usr/bin/openssl

インストールに戻ると、気になる点が2つあります。

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

ありがとう!

12
Jarrett Meyer

ソースの場所で、cd ext/openssl、次にRuby extconf.rb。これにより、メイクファイルext/opensslディレクトリ内が生成されます。単にmake && Sudo make install itをビルドしてRubyopenssl拡張子をビルドし、適切な場所に.soをインストールします。

同上ext/readline readlineサポート用。

そうすれば、make Rubyが適切にできるはずです。

編集:私が十分に明確でなかった場合:

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
8
Matty K

私は同じ問題に遭遇し、次の2つのパッケージをインストールする必要がありました

libssl-dev
libreadline-dev 

実際、次のパッケージをインストールしてRuby 2.0.0とpostgres 9.2を取得し、opensslとreadlineを使用してubuntu 13.04でコンパイルする必要があるので、それらを共有すると思いました。

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
5
Chris D

私にとっては、依存関係が欠落しているケースでした。

ithoughtRubyのインストールに必要なすべての依存関係がありましたが、私もopenSSLとreadlineエラーを受け取っていました。

ルート権限のないRVMでRubyをインストールしようとしましたが、失敗しましたが、欠落している依存関係のリストが表示されました。その後、パッケージマネージャーで依存関係をインストールしました。その後、最初からソースからRubyのインストールを再試行しましたが、すべて正常に動作しました

私にとって、欠落していた依存関係は次のとおりです。

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

しかし、それらはあなたにとって異なるかもしれません。

update:私はもともとこのリストを見つけた場所を正確に覚えていませんが、クイック検索で次のページに同様のリストが見つかりました。 :

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

3

Ruby 2.0をインストールするとき、opensslのために、rubygems 2.0のインストールが正常に完了しなかった可能性があります。 openssl構成ファイルへの有効なパスを指定してください。あなたは出来る:

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

パスは通常$ HOME/.rvm/usrまたは$ HOME/.rvm/usr/sslです

それから

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

Rubygemsのインストールが正常に完了することを確認してください。再インストールせずにそのパスを修正するより良い方法かもしれませんが、これはそれを行う必要があります。

0
fdibartolo