我担任 IBM AS/400 顾问已有近 20 年。过去我曾使用 TN5250 连接到 400。最近我收到了很多可能提供远程咨询服务的电子邮件。我尝试配置该程序并看到以下错误消息:
checking for OpenSSL headers... -I/usr/include
checking for CRYPTO_num_locks in -lcrypto... no
configure: error: ** Unable to find OpenSSL libraries!
我正在使用 Ubuntu 23.10。如果我需要该程序,如何安装这些库?
答案1
根据您报告的错误消息,您似乎已经拥有所需的库 - 特别是libcrypto
(由软件包提供libssl3
,并由提供开发标头和库链接libssl-dev
)。但是您的版本libcrypto
显然不包含CRYPTO_num_locks
符号。
一般来说,这类 API 不兼容表明库对于您要构建的软件来说要么太旧要么太新。在这种情况下,我能找到的 TN5250 的最新来源是这个sourceforge 项目其中大多数文件似乎可以追溯到 2008 年。与此同时,OpenSSL 更改.md文件描述CRYPTO_num_locks
为“新功能”在描述中0.9.3a 和 0.9.4 之间的变化 [1999 年 8 月 9 日]。我找不到任何关于它何时被删除的提及 - 我怀疑它是作为迁移到平台特定的“本机”线程实现(Windows 线程/ pthreads)的一部分1。
有趣的是,虽然 configure 脚本会检查CRYPTO_num_locks
,但我在源代码中找不到它实际被使用的地方。但它肯定使用了SSLv2_client_method
,而它在 OpenSSL 1.1.0 2中已被删除。
如果您不需要 SSL 支持,那么看起来您可以在没有 SSL 支持的情况下直接配置和构建 TN5250 3:
./configure --with-ssl=no
make
如果你做发现自己在 2024 年需要一个支持 SSL 的 telnet 客户端,那么你可能应该使用 SSH - 如果你需要使用 TN5250 客户端,你可以考虑建立 telnet 隧道超过SSH。
至少,它可以在我的 Ubuntu 22.04 VM 上运行。