我并不是 Perl 的专家,但由于某些情况,我必须在新的 gentoo 服务器上部署 Perl 脚本。该脚本在其他几个由另一个人配置的服务器上运行良好。因此,在我自己安装的新服务器上,某些软件包具有不同的版本。结果,给定的 Perl 脚本出现了问题:
"Net::SSL" 来自 "Crypt-SSLeay" 无法验证主机名;要么安装 "IO::Socket::SSL",要么通过将 "PERL_LWP_SSL_VERIFY_HOSTNAME" 环境变量设置为0来关闭验证。
实际上已经安装了 "IO::Socket::SSL"。 perl -MIO::Socket::SSL -e 'print "$IO::Socket::SSL::VERSION\n"' 2.024 为什么它看不到已安装的模块?在新服务器上我能做什么来解决这个问题而不修改脚本?版本差异很重要吗? 新服务器 Perl 版本:5.24.0 旧服务器 Perl 版本:5.22.1 新服务器: perl -v This is perl 5, version 24, subversion 0 (v5.24.0) built for x86_64-linux perl -MCrypt::SSLeay -e 'print "$Crypt::SSLeay::VERSION\n"' 0.72 perl -MIO::Socket::SSL -e 'print "$IO::Socket::SSL::VERSION\n"' 2.024 env | grep PERL_LWP_SSL_VERIFY_HOSTNAME 旧服务器: perl -v This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux network6 ~ # perl -MCrypt::SSLeay -e 'print "$Crypt::SSLeay::VERSION\n"' 0.72 network6 ~ # perl -MIO::Socket::SSL -e 'print "$IO::Socket::SSL::VERSION\n"' 2.012 env | grep PERL_LWP_SSL_VERIFY_HOSTNAME
实际上已经安装了 "IO::Socket::SSL"。 perl -MIO::Socket::SSL -e 'print "$IO::Socket::SSL::VERSION\n"' 2.024 为什么它看不到已安装的模块?在新服务器上我能做什么来解决这个问题而不修改脚本?版本差异很重要吗? 新服务器 Perl 版本:5.24.0 旧服务器 Perl 版本:5.22.1 新服务器: perl -v This is perl 5, version 24, subversion 0 (v5.24.0) built for x86_64-linux perl -MCrypt::SSLeay -e 'print "$Crypt::SSLeay::VERSION\n"' 0.72 perl -MIO::Socket::SSL -e 'print "$IO::Socket::SSL::VERSION\n"' 2.024 env | grep PERL_LWP_SSL_VERIFY_HOSTNAME 旧服务器: perl -v This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux network6 ~ # perl -MCrypt::SSLeay -e 'print "$Crypt::SSLeay::VERSION\n"' 0.72 network6 ~ # perl -MIO::Socket::SSL -e 'print "$IO::Socket::SSL::VERSION\n"' 2.012 env | grep PERL_LWP_SSL_VERIFY_HOSTNAME
$ENV {'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;
,它是否有效? - mob