如何判断RVM安装的ruby实际上正在使用哪个openssl lib
我发现我可以使用以下任何命令成功安装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是否将我的ruby链接到我想要的openssl lib(/ usr / local中的那个)? 如何判断哪个openssl lib编译/链接了ruby?
我正在使用Linux Mint 13。
Ruby有很复杂的检测库的机制,每个扩展都有它自己的代码。 幸运的是,大多数扩展都支持pkg-config
因此可以强制*.pc
文件的位置:
PKG_CONFIG_PATH=/path/to/openssl/lib/pkgconfig rvm reinstall 1.9.3 rvm use 1.9.3
然后在编译后你可以在OSX上validation:
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=...
+ --with-openssl
,opt-dir支持多个路径分开用:
从ruby1.9.3-p327开始
怎么样:
ruby -ropenssl -e "puts OpenSSL::VERSION"
- Ruby on Rails的SAML 2.0 SSO?
- uninitialized constant> ActionCable :: Server :: Configuration :: ApplicationCable
- 使用OpenSSL进行数字签名validation
- 使用Net :: SSH :: Gateway设置隧道(挂在.new)
- SSLError:主机名“WXYZ”与服务器证书不匹配
- 无法在OSX上运行带有RVM的Ruby 2.2.3
- 在Windows 7 x86上使用Ruby安装OpenSSL for eventmachine
- 为什么我用OpenSSL :: SSL :: SSLError Stripe事务得到“坏ecpoint”?
- 为什么我不能使“OpenSSL with Ruby”和“Command line OpenSSL”可以互操作?
- 如何解决OpenSSL :: Cipher :: Cipher#encrypt的弃用警告
- 如何使用AES 256 ECB PKCS5Padding在ruby中加密数据