gpt4 book ai didi

ruby - 在运行时检测 ruby​​ 二进制编译布局

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:11 25 4
gpt4 key购买 nike

与 RVM(“最流行的 Ruby 安装工具”)一起安装的 Ruby 经常会生成无法进行 SSL 操作(例如通过 HTTPS 连接)的二进制文件。这是一个已知问题 known workaround .

如果您尝试对此类 Ruby 二进制文件使用 SSL,则会导致异常 LoadError: cannot load such file -- openssl

问题:有什么方法可以判断 Ruby 二进制文件是针对哪些库构建的,从而检测它是否支持 SSL 在运行时?除了尝试实际使用 SSL 并捕获异常之外?

最佳答案

除非您想做与 require 相同的工作,否则我认为最简单的方法是尝试要求 openssl 并拯救 LoadError,以防它不存在于系统中以检测其可用性。

好像是个成语commonly用过。

如果你想要一些事后检测它是否被加载的东西

ruby -ropenssl -e 'p defined? OpenSSL' # => "constant"

对比

ruby -e 'p defined? OpenSSL' # => nil

有帮助吗?

即检查defined?(OpenSSL)的返回值是否为非nil?

我们通常在 tests 中使用它在运行时排除使用所有版本 OpenSSL 不可用的功能的测试,如果 OpenSSL 不作为扩展存在,则完全排除测试(if defined?OpenSSL)。

关于ruby - 在运行时检测 ruby​​ 二进制编译布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9718927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com