无法让 Spamassassin 在 Centos 6 上运行

无法让 Spamassassin 在 Centos 6 上运行

我已经安装了两次 SpamAssassin,一次使用 yum install spamassassin,一次从 cpan 下载源代码。

SpamAssassin 本身运行并报告其自身为在 Perl 5.22.0 上运行的 v3.4.1,但每当我使用“service spamassassin start”将其作为守护进程运行时,sp​​amd 都会失败并出现以下错误:-

# service spamassassin start
Starting spamd: Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at /usr/share/perl5/vendor_perl/Mail/SpamAssassin/Dns.pm line 757.
Compilation failed in require at /usr/share/perl5/vendor_perl/Mail/SpamAssassin/Message/Metadata/Received.pm line 49.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Mail/SpamAssassin/Message/Metadata/Received.pm line 49.
Compilation failed in require at /usr/share/perl5/vendor_perl/Mail/SpamAssassin/Message/Metadata.pm line 58.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Mail/SpamAssassin/Message/Metadata.pm line 58.
Compilation failed in require at /usr/share/perl5/vendor_perl/Mail/SpamAssassin/Message.pm line 51.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Mail/SpamAssassin/Message.pm line 51.
Compilation failed in require at /usr/share/perl5/vendor_perl/Mail/SpamAssassin.pm line 75.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Mail/SpamAssassin.pm line 75.
Compilation failed in require at /usr/bin/spamd line 85.
BEGIN failed--compilation aborted at /usr/bin/spamd line 85.
                                                       [FAILED]

我怀疑 SA 及其模块已安装在不同的 perl 包含目录中,因为 perl v5.22.0 版本从 /usr/local/lib/perl5/site_perl/5.22.00 和其他目录中获取其模块,但它们都包含 5.22.0。

我尝试使用 cpan 重新安装 Mail::SpamAssassin,但它一直告诉我我拥有最新版本。我也尝试从 cpan.org 源(安装)安装它,但它没有安装任何依赖项,我不知道需要什么。

我曾尝试使用 cpan fforce 安装 Mail::SpamAssassin,但没有什么效果。

Spamd 使用 perl v5.22.0 运行,因此应该(我认为)访问 5.22.0 包含目录。

我现在完全陷入困境了。

  1. 如何让 SpamAssassin 与 Postfix 和 Dovecot 一起运行,以便清除我收到的大量垃圾邮件。

  2. 如果无法运行 SpamAssassin,还有其他选择吗?

任何帮助将非常感激。

答案1

事实证明 spamd 需要在 perl 5.10.1(此服务器上最初安装的版本)下运行。因此,不必使用以下代码:-

#!/usr/bin/perl -T -w

它只是需要

#!/usr/bin/perl5.10.1 -T -w

部分线索是在错误消息中(读取了错误的包含文件),主要归因于 thrig 的评论 - 谢谢

相关内容