Centos6
無法讓 Spamassassin 在 Centos 6 上執行
我安裝了 SpamAssassin 兩次,一次使用 yum install spamassassin,一次從 cpan 下載原始碼。
SpamAssassin 本身執行並報告自己為在 Perl 5.22.0 上執行的 v3.4.1,但是當我使用“service spamassassin start”作為守護程序執行它時 spamd 失敗並出現以下錯誤:-
# 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 源(安裝)安裝它,但它沒有安裝任何依賴項,我不知道需要什麼。
我嘗試過對 Mail::SpamAssassin 進行 cpan fforce 安裝,但沒有任何區別。
Spamd 使用 perl v5.22.0 執行,所以應該(我原以為)訪問 5.22.0 包含目錄。
我現在完全卡住了。
- 我怎樣才能讓 SpamAssassin 與 Postfix 和 Dovecot 一起執行,以便清除我收到的大量垃圾郵件。
- 如果證明無法讓 SpamAssassin 執行,是否有替代方案?
任何幫助將非常感激。
事實證明,spamd 需要在 perl 5.10.1 下執行,這是該伺服器上最初安裝的版本。所以,而不是有一個shebang: -
#!/usr/bin/perl -T -w
它只是需要
#!/usr/bin/perl5.10.1 -T -w
部分線索在錯誤消息中(讀取錯誤的包含文件),主要取決於 thrig 的評論 - 謝謝