Bro*_*sef 5 postgresql autoconf openssl
我尝试通过执行以下操作使用 OpenSSL 安装 Postgres
./configure --with-openssl
但我有一个错误说
配置:错误:OpenSSL 需要头文件 openssl/ssl.h
但是,我确实安装了 OpenSSL。如果我运行,openssl version我会得到这个输出
OpenSSL 0.9.8zh 2016 年 1 月 14 日
我遇到了这个解决方案并尝试做
./configure --with-includes=/usr/local/ssl/include 它安装没有任何问题。
有人可以解释发生了什么以及两个配置版本之间的区别吗?
有人可以解释发生了什么以及两个配置版本之间的区别。
您可以运行./configure --help以获取参数概要:
$ ./configure --help | egrep -i '(ssl|includes)'
--with-includes=DIRS look for additional header files in DIRS
--with-openssl build with OpenSSL support
Run Code Online (Sandbox Code Playgroud)
./configure --with-openssl
这只是在 Postgres 中启用 OpenSSL。它可以检查 Autoconf,例如探测符号CRYPTO_new_ex_data和SSL_Library_init.
它看起来也像 configure 定义#define USE_OPENSSL 1了激活 OpenSSL 代码路径:
$ grep -IR OPENSSL * | grep '.c'
...
src/backend/postmaster/fork_process.c:#ifdef USE_OPENSSL
src/backend/postmaster/fork_process.c:#ifdef USE_OPENSSL
src/backend/utils/init/postinit.c:#ifdef USE_OPENSSL
src/backend/utils/init/postinit.c:#ifdef USE_OPENSSL
src/include/libpq/libpq-be.h:#ifdef USE_OPENSSL
src/include/libpq/libpq-be.h:#ifdef USE_OPENSSL
...
Run Code Online (Sandbox Code Playgroud)
./configure --with-includes=/usr/local/ssl/include
这可能并没有启用OpenSSL的。它只是为编译期间未使用的头文件添加了一个路径。使用lddLinux和otool -LOS X上,看看是否有任何的OpenSSL依赖。
您可能应该使用./configure --with-openssl --with-includes=/usr/local/ssl/include --with-libraries=/usr/local/ssl/lib. 您可能应该添加CFLAGS="-Wl,-rpath=/usr/local/ssl/lib以确保正确的运行时链接。
另请参阅Postgres 问题 14308:Postgres 9.5.4 未针对 OpenSSL 1.1.0 进行配置
| 归档时间: |
|
| 查看次数: |
8677 次 |
| 最近记录: |