尝试使用 PostgreSQL 的 pgcrypto 扩展,但每当我尝试启动服务器时都会得到这个
undefined symbol: EVP_cast5_cbc
:
[postgres@localhost ~]$ pg_ctl start -D /usr/local/pgsql/data
waiting for server to start....2024-04-26 10:39:15.326 CEST [3036]: db=,user=,app=,client= LOG: 00000: pgaudit extension initialized
2024-04-26 10:39:15.326 CEST [3036]: db=,user=,app=,client= LOCATION: _PG_init, pgaudit.c:2202
2024-04-26 10:39:15.338 CEST [3036]: db=,user=,app=,client= FATAL: 58P01: could not load library "/usr/local/pgsql/lib/pgcrypto.so": /usr/local/pgsql/lib/pgcrypto.so: undefined symbol: EVP_cast5_cbc
2024-04-26 10:39:15.338 CEST [3036]: db=,user=,app=,client= LOCATION: internal_load_library, dfmgr.c:245
2024-04-26 10:39:15.338 CEST [3036]: db=,user=,app=,client= LOG: 00000: database system is shut down
2024-04-26 10:39:15.338 CEST [3036]: db=,user=,app=,client= LOCATION: UnlinkLockFiles, miscinit.c:985
stopped waiting
pg_ctl: could not start server
Postgres 是从源代码编译的,版本为 15.6。
如果需要,这是我的 openssl 版本:
OpenSSL 3.0.7 2022 年 11 月 1 日(库:OpenSSL 3.0.7 2022 年 11 月 1 日)
看起来您使用与当前安装的版本不同的 OpenSSL 版本构建了 pgcrypto。现在
EVP_cast5_cbc
已于 1998 年添加到 OpenSSL,因此使用的版本一定是非常旧的版本。
要找出链接的库,请运行
ldd /usr/local/pgsql/lib/pgcrypto.so