Perl IO::Socket::INET6::sockaddr_in6 重新定义错误

标签 perl cpan

我们在/usr/share 中有一个自定义的 perl 安装 (5.10.1),我尝试执行 GeoIP2 的“cpan -i”安装 here

这样做之后,它似乎安装了很多我无法跟踪的依赖项,而且因为我一直在出错

Subroutine IO::Socket::INET6::sockaddr_in6 redefined at /usr/share/perl5/Exporter.pm line 67

在我们运行的大多数脚本中都使用“使用”命令。我一直在努力确定哪个模块最终会调用它,但目前还没有成功。

经过一些研究,一个建议是注释掉以下几行

/usr/share/perl5/IO/Socket/INET6.pm # (version 2.56, think latest is 2.72)


###commented out the following
###use Socket6 (
###    qw(AI_PASSIVE inet_ntop inet_pton getaddrinfo
###    sockaddr_in6 unpack_sockaddr_in6_all pack_sockaddr_in6_all)
###);

这已阻止错误出现在各种脚本中。有谁知道这样做是否安全(即以后会引起更多问题),还有更好的方法(即是否可以只更新该模块,我猜这会导致问题并破坏其他东西?)。正确更新模块的最佳方法是什么?

最佳答案

这是 IO::Socket::INET6 中的一个错误,已根据此 bug report 在版本 2.69 中修复。 :

Subroutine main::sockaddr_in6 redefined at /usr/share/perl/5.14/Exporter.pm line 67.

...

Should be fixed in 2.69.

您可以使用 cpan 以 root 身份从 shell 中使用命令 cpan IO::Socket::INET6 更新模块。

关于Perl IO::Socket::INET6::sockaddr_in6 重新定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23909848/

相关文章:

arrays - 从 AJAX 请求迭代 Perl 数组

perl - 如何在 Perl 中创建枚举类型?

perl - 我应该使用 CPAN 的替代方案来替换 Frontier::RPC2 吗?

algorithm - 使用 perl 按依赖项排序数组

perl cpanm 安装 make 问题

perl - 为什么我的 CPAN 分布没有被 PAUSE 索引?

.NET 等价于 Perl 正则表达式

perl - 我在哪里可以得到关于 Perl 相关问题的好答案?

perl - Perl-自定义错误输出

mysql - Windows 上正确的 "chmod"Perl 模块文件是什么?