On 2/16/2023 9:13 PM, joe a wrote:
Well, I am in unfamiliar waters.
picking one error message as typical:
plugin: failed to parse plugin (from @INC): Can't locate
Mail/SpamAssassin/Plugin/iXhash2.pm:
lib/Mail/SpamAssassin/Plugin/iXhash2.pm: Permission denied at (eval
1746) line 1.
The file locations shown do not exist, as explicitly as shown. What I
find using "locate iXhash2.pm" is:
/usr/lib/perl5/vendor_perl/5.26.1/Mail/SpamAssassin/Plugin/iXhash2.pm
which the SA user can access, at least see via ll. The others I've
checked are also visible, and directories are x (exccutable).
The sense I am getting is there is a perl file that contains these
paths that is referred to as @INC.
I don't have the knowledge at this point to see if, somehow, root sees
the files as shown in the error or if the path is somehow altered for
the SA user.
Thanks for any guidance.
Sounds like you've got a case of discombobulated PERL. @INC is a list
of directories to search for modules to INCLUDE at a PERL script's
compile time. It is usually baked into the PERL executable by the
package builder. Who really knows why they put things where they do?
perl -V gives verbose output. @INC paths should be listed near, or at,
the bottom.
To simplify that with a one-liner: perl -e 'printf "%d %s\n", $i++, $_
for @INC'
How you got into that state is a mystery to me.
I see a few symbolic links in your future. For example:
ln -s /usr/lib/perl5/vendor_perl/5.26.1/Mail /lib/Mail
Or, if you have to be more specific (say, /lib/Mail exists already),
something like:
ln -s /usr/lib/perl5/vendor_perl/5.26.1/Mail/SpamAssassin
/lib/Mail/SpamAssassin
etc...
--Jared Hall