我在具有完整开发环境的计算机上运行bundle --deployment,然后将vendor / bundle复制到没有完整开发环境的第二台计算机上。在第二台机器上,一个简单的'bundle exec irb'给出:
/usr/lib64/ruby/2.1.0/rubygems/ext/builder.rb:89:in“run”:错误:无法构建gem原生扩展。 (GEM ::分机:: 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,在非开发机器上,只安装了SUSE SLES SP3上的libffi43(libffi43-4.3.4_20091019-0.37.28)。
答案 0 :(得分:0)
我构建了一个具有相同内核的开发系统,这解决了这个问题。我不会想到内核中的细微差别会导致失败。我可能忽略了修复它的其他一些细节,但我对此表示怀疑。