最近在 Bugzilla 遇到了同样的问题后,我遇到了这个被拒绝的错误报告:
https://bugzilla.mozilla.org/show_bug.cgi?id=897355
它提到了 Bugzilla 没有安装一些依赖项,但没有说明哪些依赖项。所以我只是运行 cpan 并从 cpan 控制台发出升级命令来升级所有包。尽管如此,它安装了一些来自它说丢失的各种包的依赖项。我没有看到哪些与 SMTP SSL 包相关,因为它在依赖关系中安装了好几个级别的东西,但是在运行它然后在 Bugzilla 中运行 checksetup.pl 之后,问题似乎 待修复。警告:不过,升级所有软件包确实需要很长时间。
这解决了 Bugzilla 无法正确检测的问题,但不幸的是,Net::SMTP::SSL 中似乎存在一个错误,与它自己的依赖项之一冲突。如果您尝试直接运行包,您将收到类似“不是 GLOB 引用”的错误。您可以在更新所有包后运行它来查看它:
perl -MNet::SMTP::SSL -wE 'say $Net::SMTP::SSL::VERSION'
如果您收到返回的版本号,那么它可以工作,但我收到一个错误,并且也看到了其他有关它的帖子。我还不能解决这个问题,但可能有一些 SSL 包和它的各种版本的依赖项的组合实际上可以工作,只是不是每个版本的最新版本。否则,我认为 Bugzilla 发行说明中会有一个已知问题,因为它们会在测试期间遇到它。
我没有时间去做,也没有看到其他人包括包维护者,但我想你可以找到 Net::SMTP:SSL 的所有依赖项,然后一一更新使用类似的包:
cpan upgrade Net::SMTP::SSL
然后将 Net::SMTP::SSL 替换为它的每个依赖项,并使用上面的 perl 命令进行测试。当它中断时,您会知道哪个包发生冲突。然后,您可以将该包回滚到早期版本并更新所有其他依赖项,希望它能解决问题。但是,绝对有可能没有任何组合会起作用,如果是这样的话,我会对 Bugzilla 的测试过程感到有些失望。
您可以使用各种方法找到依赖项,但 CPAN 有一种。这是一篇关于如何创建 perl 脚本来使用它的文章的链接:https://metacpan.org/pod/CPAN::FindDependencies
无论如何,这可能无法解决您的问题,但我希望它有助于追踪问题,并且知道您并不孤单。如果您确实发现了什么,请在此处发布。如果我以后有更多时间工作,我也会这样做。