On 2/11/19 11:42 PM, Bill Cole wrote:
> On 11 Feb 2019, at 21:40, Ken Wright wrote:
>
>> On 2/11/19 9:33 PM, Bill Cole wrote:
>>> On 11 Feb 2019, at 20:24, Ken Wright wrote:
>>>
>>>> it does say it's loading the Mail::SpamAssassin::Plugin::Check module
>>>
>>> This is evidence that one or more of the following is true about spamd:
>>>
>>> 1. It is using a different SpamAssassin config than you use from the
>>> command line
>>> 2. It is using a different perl executable than you use from the
>>> command line (e.g. perlbrew)
>>> 3. It is using a different perl library path than you use from the
>>> command line (e.g. local::lib)
>>>
>> I'm still kind of a n00b, so... how can I tell which?  I have no GUI on
>> the server, so everything is from the command  line.
>
> OK, so you'd probably know if you had installed perlbrew or otherwise
> rigged up a way that you could accidentally run different perl
> executables from  systemd and from the command line. So #2 is
> *probably* eliminated. Simplest solid check: look at the first line
> (starting with '#!') of the spamassassin script and of spamd (which is
> also a Perl script) and confirm that they are identical and DO NOT use
> /bin/env or /usr/bin/env to find perl. If they are not identical, then
> you probably have issues #1 and #2 together.  If they use the env
> trick, they may be finding different perl executables.
I haven't installed perlbrew or anything like that, as far as I know. 
Where would I find the two scripts you mentioned?
> #1 is only likely if you have installed SpamAssassin in multiple ways,
> e.g. from the distribution's package for it and from source or using
> CPAN. If you have stuck strictly to using the standard packages for SA
> and Perl and the various Perl modules that SA depends on, you would
> have a hard time creating this issue without trying very hard. If you
> have tried installing SA and/or its dependencies  "by hand"  or using
> CPAN instead of using the prebuilt packages, clean up that mess and
> reinstall from packages. A bespoke artisanal installation is
> inappropriate for someone who claims to be "kind of a n00b."
I installed SA from the Ubunto repositories only.  I have, however,
installed a few modules (such as Geo::IP) from CPAN, after starting with
the debug flag indicated there were a few uninstalled modules (such as
Geo::IP).  Repeating the debug start showed all those modules installed,
so I don't think that's the issue.
> #3 is actually not unlikely. I don't know if Ubuntu 18 does it, but I
> know that the EL7 family of distributions have instituted local::lib
> as a default, which means that an interactive login gets $PERL5LIB set
> to look in  ~/perl5/ for installed modules. A service started out of
> systemd won't have that. If you've somehow managed to install SA under
> ~/perl5/ then spamd won't find it. You can just run "echo $PERL5LIB"
> to see if your login has that set.
I ran "echo $PERL5LIB" with and without sudo.  In both cases all I got
was a new line.
> One way to debug this would be to add "-D all" to the OPTIONS
> parameter in  /etc/default/spamassassin and try starting it. This
> should spew a lot of debug output into the log, which you can compare
> to what you got from running spamassassin from the command line with
> '-D' to look for discrepancies in where it is looking for config files
> and libraries.

I notice the path shown for SA doesn't include /etc/spamassassin, which
is where all the .pre files are.  Is this it?  Am I just not finding the
necessary .pre files?

Ken

Reply via email to