我编写了一个Ruby gem
,它使用最新版本的FFI
来访问(以及自编写的)共享对象库。我将ruby 2.0.0p247
与rvm 1.21.12
结合使用。
我的gem包含/ bin中的'可执行文件',它按预期工作,读取用户给出的一些数据,并调用我的共享对象库中的一个函数,该函数又调用外部API库中的一个函数。一切正常。
如果我在RSpec test
内或Rails console
内执行完全相同的“可执行文件”代码,则底层API组件会失败。它似乎在SSL operation
期间失败,其中RSA private key
从PKCS#12
容器中读取数据对一段XML进行数字签名。
我能够将所有内容分解为bundle
r。如果我使用bundler
执行我的(工作)'可执行文件',它会失败并出现我在RSpec
和Rails
中看到的相同错误。
我已经交叉检查了ENV
个变量,并在执行时直接设置它们。没有变化。
所以问题是:bundler
对执行环境做了什么,让我的底层API组件失败。
我在哪里可以开始寻找错误?
欢迎任何提示。问候 菲利克斯