编译TN 5250程序

vdu*_*eau 5 compiling

我担任 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!
Run Code Online (Sandbox Code Playgroud)

我使用的是 Ubuntu 23.10。如果我需要该程序,如何安装这些库?

ste*_*ver 6

根据您报告的错误消息,您似乎已经拥有所需的库 - 特别是libcrypto(由包提供libssl3,以及由 提供的开发标头和库链接libssl-dev)。但是您的版本libcrypto显然不包含该CRYPTO_num_locks符号。

一般来说,此类 API 不兼容表明这些库对于您尝试构建的软件来说太旧或太新。在这种情况下,我可以找到的 TN5250 的最新来源是这个sourceforge 项目,其中大多数文件似乎可以追溯到 2008 年。同时,OpenSSL CHANGES.md文件在描述中被描述CRYPTO_num_locks“新功能” 0.9.3a 和 0.9.4 之间的更改 [1999 年 8 月 9 日]。我找不到任何提及它何时被删除的信息 - 我怀疑它是迁移到特定于平台的“本机”线程实现(Windows 线程/pthreads)1的一部分。

有趣的是,虽然配置脚本检查CRYPTO_num_locks,但我找不到它在源代码中实际使用的任何地方。然而它确实使用了SSLv2_client_method,这在 OpenSSL 1.1.0 2中被删除了。

如果您不需要 SSL 支持,那么看起来您可以直接配置和构建没有 SSL 的 TN5250 3

./configure --with-ssl=no
make 
Run Code Online (Sandbox Code Playgroud)

如果您确实发现自己在 2024 年需要启用 SSL 的 telnet 客户端,那么您可能应该使用 SSH - 如果您需要使用 TN5250 客户端,您可以考虑通过SSH 建立 telnet 隧道。


  1. 请参阅1.0.2h 和 1.1.0 之间的更改 [2016 年 8 月 25 日]

  2. 请参阅SSLv23_client_method - 历史记录

  3. 至少,这可以在我的 Ubuntu 22.04 VM 上运行。