7

次のコマンドのいずれかを使用して、Ruby を正常にインストールできることを発見しました。

$ rvm reinstall 1.9.3-p327
$ rvm reinstall 1.9.3-p327 --with-openssl-dir=/usr/local
$ rvm reinstall 1.9.3-p327 --with-openssl-dir=/afdlkjasd_not_a_dir
$ rvm reinstall 1.9.3-p327 --with-openssl-dirffadsf=/afdlkjasd_not_a_dir

上記のどのコマンドを使用したかに関係なく、次のように入力できます。

$ rvm use 1.9.3-p327
Using /home/clay/rvm/gems/ruby-1.9.3-p327
$ which ruby
/home/clay/.rvm/rubies/ruby-1.9.3-p327/bin/ruby
$ ruby -e "puts require('openssl')"
true

私が何をしているかに関係なく、ssl をサポートしているようです。rvm または ruby​​ ビルド プロセスは、無効なオプションや値を気にしないと思います。--with-openssl-dirオプションを(明らかに)正しく入力したとしても、オプションが尊重されたかどうかはわかりません。

rvm は私のルビーを私が意図した openssl lib (/usr/local にあるもの) にリンクしていますか? Rubyがコンパイル/リンクされたopenssl libを確認するにはどうすればよいですか?

Linux Mint 13 を使用しています。

4

2 に答える 2

7

どうですか:

ruby -ropenssl -e "puts OpenSSL::VERSION"
于 2012-12-19T17:15:44.020 に答える
4

Ruby には、ライブラリを検出するための非常に複雑なメカニズムがあり、すべての拡張機能にはそのための独自のコードがあります。幸いなことに、ほとんどの拡張機能がサポートされているため、ファイルpkg-configの場所を強制することができます。*.pc

PKG_CONFIG_PATH=/path/to/openssl/lib/pkgconfig rvm reinstall 1.9.3
rvm use 1.9.3

コンパイル後、OSX で確認できます。

find $MY_RUBY_HOME -name openssl.bundle | xargs otool -L

または Linux の場合:

find $MY_RUBY_HOME -name openssl.so | xargs ldd

--with-openssl-dir=...ruby で完全にサポートされていないため、 + にする必要があります--with-opt-dir=...。opt -dir は、ruby 1.9.3-p327 から始まる--with-openssl複数のパスをサポートしています:

于 2012-12-19T18:40:57.380 に答える