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





Reply via email to