在Mac OS X上安装Crypt :: SSLeay

问题描述 投票:0回答:2

尝试在Mac OS X上安装Crypt::SSLeay时出现以下错误:

$ sudo perl -MCPAN -e shell
cpan[1]> install Crypt::SSLeay
Reading '/Users/.cpan/Metadata'
  Database was generated on Thu, 26 Oct 2017 01:53:54 GMT
Running install for module 'Crypt::SSLeay'
Running make for N/NA/NANIS/Crypt-SSLeay-0.72.tar.gz
Checksum for /Users/.cpan/sources/authors/id/N/NA/NANIS/Crypt-SSLeay-0.72.tar.gz ok
Scanning cache /Users/.cpan/build for sizes
............................................................................DONE

  CPAN.pm: Building N/NA/NANIS/Crypt-SSLeay-0.72.tar.gz

Cannot link with any of the requested SSL libraries 'ssl, crypto, ssl32, ssleay32, eay32, libeay32, z'
No 'Makefile' created'YAML' not installed, will not store persistent state
  NANIS/Crypt-SSLeay-0.72.tar.gz
  /usr/bin/perl Makefile.PL -- NOT OK
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install
Could not read metadata file. Falling back to other methods to determine prerequisites
Failed during this command:
 NANIS/Crypt-SSLeay-0.72.tar.gz               : writemakefile NO -- No 'Makefile' created

我按照here发现的说明安装了openssl,openssl version -a的输出是:

OpenSSL 1.1.0f  25 May 2017
built on: reproducible build, date unspecified
platform: darwin64-x86_64-cc
compiler: cc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/mac-dev-env/openssl-1.1.0f/ssl\"" -DENGINESDIR="\"/usr/local/mac-dev-env/openssl-1.1.0f/lib/engines-1.1\"" 
OPENSSLDIR: "/usr/local/mac-dev-env/openssl-1.1.0f/ssl"
ENGINESDIR: "/usr/local/mac-dev-env/openssl-1.1.0f/lib/engines-1.1"

我不知道我还能做什么,因为我需要ssl库,但它似乎没有链接它?

macos perl openssl perl-module
2个回答
1
投票

OPENSSLDIR:“/usr/local/mac-dev-env/openssl-1.1.0f/ssl”

这不是openssl的标准位置。这解释了为什么它找不到必要的文件:

无法链接任何请求的SSL库的ssl,crypto,ssl32,ssleay32,eay32,libeay32,z'

在查看README的Crypt :: SSLeay时,你会发现:

如果您在非标准位置具有OpenSSL标头和库,则可以使用 $ perl Makefile.PL --incpath = ... --libpath = ...

README中还有其他说明如何使用cpanm等设置路径。

除此之外,在大多数情况下,您不希望安装Crypt :: SSLeay,而是安装Net :: SSLeay。 Crypt :: SSLeay仅支持保持旧版本的LWP工作,所有新功能(包括当前版本的LWP)在Net :: SSLeay之上使用Net :: SSLeay和IO :: Socket :: SSL。


0
投票

如果这与安装LWP::Protocol::https有关,因为你想使用LWP::UserAgent ...你将下注安装:IO::Socket::SSL而不是前面提到的Crypt::SSLeay

© www.soinside.com 2019 - 2024. All rights reserved.