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


12

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

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

ありがとう!

回答:


9

ソースの場所でcd ext/openssl、次にruby extconf.rb。これにより、ext / opensslディレクトリに makefileが生成さます。単にmake && sudo make installそれはルビー構築するためのopenssl拡張をし、適切な場所にする.soをインストールします。

同上ext/readlinereadlineのサポートのため。

その後、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

1
注:この回答は、Rubyとその拡張モジュールを手動で構築およびインストールするためのものです。純粋なaptベースの回答については、@ chris-dの回答を参照してください。
マティK

1
私がしようと、3行目に捕まってしまったmakeext/openssl*** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.同じことのためにext/readline
ZX9

@ ZX9私は同じ問題を抱えていました、ここでの解決策は私のために働いた。
jgon

5

同じ問題にぶつかりました。次の2つのパッケージをインストールする必要がありました

libssl-dev
libreadline-dev 

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

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

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

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

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

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

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

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

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

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


1
RVMまたはRBENVなしでインストールしようとしています。ソースからコンパイルするだけです。したがって、。/ configure、make、およびmake installステップ。ありがとう、結構です。
ジャレットマイヤー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.