首页 > 解决方案 > 找不到 OpenSSL 如果已经安装,请相应设置 OPENSSL_PREFIX 环境变量

问题描述

当我尝试Net::SSLeay在 Debian 上安装时,我得到了

Use of uninitialized value in subroutine entry at Makefile.PL line 290.
Use of uninitialized value $exec in -x at Makefile.PL line 108.
*** Could not find OpenSSL
    If it's already installed, please set the OPENSSL_PREFIX environment
    variable accordingly. If it isn't installed yet, get the latest version
    from http://www.openssl.org/.
N/A

但我确实安装了 OpenSSL,

$ dpkg -l libssl-dev
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name             Version      Architecture Description
+++-================-============-============-================================================
ii  libssl-dev:amd64 1.1.1b-2     amd64        Secure Sockets Layer toolkit - development files

我也试过玩OPENSSL_PREFIX

标签: perlopenssldebiancpan

解决方案


不是由于无法找到标头(由 提供-dev)导致的错误,而是因为它找不到 openssl 二进制实用程序。仍然需要标头,但您也需要二进制openssl实用程序。您可以安装Net::SSLeaywith apt 本身,也可以从源代码构建模块。简单的方法,Net::SSLeay从 apt 安装,可以用

sudo apt install libnet-ssleay-perl

或者,您可以安装二进制文件openssl,然后尝试使用 cpan 再次安装。

sudo apt install openssl libssl-dev zlib1g-dev ## all requirements to build Net::SSLeay
cpanm Net::SSLeay

您可以验证是否openssl已安装(如果可行,则上述错误不应重现)

openssl version

推荐阅读