为什么RedHat 5.x编译的Ruby二进制文件不能在Fedora 17上运行?

我在RedHat Enterprise Linux 5系统上编译了Ruby 2.0.0p247二进制文件。 当我在同一个系统上require 'net/https'时,一切都很好。

二进制文件已经安装在一个通用的应用程序库上,但是当我尝试从Fedora Core 17系统执行相同的命令时,Ruby会失败,并显示以下错误消息:

 LoadError: libssl.so.6: cannot open shared object file: No such file or directory - /apps/ruby/2.0.0/lib/ruby/2.0.0/x86_64-linux/openssl.so 

当我find它正在抱怨的目录时,文件就在那里(并且它在RedHat系统上正确加载)。 RedHat编译的二进制文件是否与Fedora不兼容? 除了将Ruby安装到特定于Fedora系统的单独位置之外,是否还有其他解决scheme?

很明显RHEL 5.x(你没有指定具体的版本)编译的二进制文件在Fedora 17上不起作用,因为软件包版本不兼容…虽然特别是libssl,也可能有其他的支持库/程序也是不兼容的…你提到的唯一一个标记。

一般情况下,除非您具有基本相同的底层软件包configurationtypes,否则在一个OS分发版上创build的二进制文件不一定适用于其他OS分发版。