【发布时间】:2015-10-01 11:02:49
【问题描述】:
我使用的是不再维护的旧版本 ubuntu 10.04。我使用的支付系统最近更新了它的 SST/TLS 证书,现在需要openssl > 1.0.0。
我已经下载了最新版本并使用以下命令从头开始构建它:
CFLAGS=-fPIC ./config shared
CFLAGS='$CFLAGS -fPIC -Wl -Bsymbolic' CXXFLAGS='$CXXFLAGS -fPIC -Wl -Bsymbolic' make
make test
make install
运行make install 后,它已将所有文件放在/usr/local/ssl 下。然后我添加了/etc/environment 的新路径,以使操作系统在系统之前找到新版本的 openssl。
我已经安装了 rbenv 和 ruby-build 插件,以便从头开始构建 ruby,指向新编译的 openssl 库。但是 ruby 不会使用指定的版本,而是使用系统的版本。运行ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION' 报告我仍在使用0.9.8k 版本。用于编译 ruby 的命令如下:
CFLAGS="$CFLAGS -fPIC" RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/ssl" rbenv install ree-1.8.7-2012.02
我查看了编译器日志,似乎 ruby-build 正在使用指定的 ssl 路径。
我也尝试过升级操作系统,但这并没有帮助,因为 10.04 和 12.04 差异很大,而且我在配置文件中有很多冲突。
所以问题是如何编译 openssl 和 ruby 以便 ruby 在编译期间使用指定的 openssl 二进制文件和头文件?
【问题讨论】:
-
“我知道这可能不是 stackoverflow 的正确问题...” 适合我。您有一个
CFLAGS,并且正在调用编译器驱动程序。这比这里出现的许多废话更切题。
标签: ruby ubuntu ssl openssl rbenv