为什么 bundle --deployment 试图重建 gem ffi-1.9.6?

Why is bundle --deployment trying to rebuild gem ffi-1.9.6?

我在一台有完整开发环境的机器上 运行 bundle --deployment,然后将 vendor/bundle 复制到没有完整开发环境的第二台机器上。在第二台机器上,一个简单的 'bundle exec irb' 给出:

/usr/lib64/ruby/2.1.0/rubygems/ext/builder.rb:89:在“运行”中:错误:无法构建 gem 本机扩展。 (Gem::Ext::BuildError)

/usr/bin/ruby.ruby2.1 extconf.rb 

mkmf.rb 在 /usr/lib64/ruby/include/ruby.h

找不到 ruby 的头文件

extconf 失败,退出代码 1

bundle --deployment 不是要复制整个 gem,包括任何本机二进制文件吗?为什么要重建?

在开发机上安装了libffi43、libffi-devel和libffi43-devel,在非开发机上只安装了libffi43 (libffi43-4.3.4_20091019-0.37.28) on SUSE SLES SP3。

我用相同的内核构建了一个开发系统,这解决了问题。我不会想到内核的细微差别会导致失败。我可能忽略了修复它的其他一些小细节,但我对此表示怀疑。