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
>
> 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