1

Perl 框架Mojolicious使用可选模块IO::Socket::SSL进行安全连接。

MojoliciousIO::Socket::SSL必须使用Carton安装(cpanfile包含依赖项列表)。
为了使用IO::Socket::SSL我需要安装Net::SSLeay
Net::SSLeay需要安装 LibreSSL 或 OpenSSL。

在开发者的服务器上,确定的 Perl 项目必须使用确定的 LibreSSL/OpenSSL 版本:

$HOME/opt/LibreSSL/v1
$HOME/opt/LibreSSL/v...
$HOME/opt/OpenSSL/v1
$HOME/opt/OpenSSL/v...

我的解决方案是在之前更改$PATH系统变量(用于本地自定义 LibreSSL/OpenSSL):

- execution "carton install" command
- running of a Perl project for testing

这是正确的方式吗?

4

1 回答 1

2

确定要链接的 OpenSSL 实例是由 Net::SSLeay 在安装期间完成的(IO::Socket::SSL 只是该模块的接口)。它在其自述文件中解释:

    If your OpenSSL is installed in an unusual place, you can tell
    Net-SSLeay where to find it with the OPENSSL_PREFIX environment
    variable:
    OPENSSL_PREFIX=/home/mikem/playpen/openssl-1.0.2c perl Makefile.PL

安装后,不再需要向使用该模块的相应 Perl 项目指示。

于 2019-12-10T22:12:42.590 回答