Hi,
>> Perl variable @INC says where the modules will be looked:
>>
>> $ perl -e 'print join "\n", @INC'
>> /store/install/perl/lib/site_perl <- this is my own addition
>> (.bashrc contains 'export PERLLIB=/store/install/perl/lib/site_perl')
>> /usr/perl5/5.8.4/lib/i86pc-solaris-64int <-- perl (core)
>> /usr/perl5/5.8.4/lib \
>> /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int <---
>> /usr/perl5/site_perl/5.8.4 \ site
>> /usr/perl5/site_perl \-
>> /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int <---
>> /usr/perl5/vendor_perl/5.8.4 \ vendor
>> /usr/perl5/vendor_perl \-
>>
>>> 2. 5.8.4/lib/i86pc-solaris-64int hierarchy
>>> 3. site_perl/5.8.4/i86pc-solaris-64int hierarchy
>>> 4. vendor_perl/5.8.4/i86pc-solaris-64int hierarchy
>>>
>>
>> Not exactly, it's actually 5.8.4/lib, site_perl/5.8.4 and
>> vendor_perl/5.8.4. (if you would have 5.8.4 only - no lib, the modules
>> would get mixed up with 5.8.4/bin and 5.8.4/man and that would not be
>> nice)
>>
>
> Here I see inconsistency: where locally added binaries and manpages have
> to go?
> There is no man/ and bin/ neither in vendor_perl/$VERSION, nor in
> site_perl/$version
It's defined in Config.pm
========== /usr/perl5/5.8.4/lib/i86pc-solaris-64int/Config.pm ==========
installbin='/usr/perl5/5.8.4/bin'
installhtml1dir=''
installhtml3dir=''
installman1dir='/usr/perl5/5.8.4/man/man1'
installman3dir='/usr/perl5/5.8.4/man/man3'
installprefix='/usr/perl5/5.8.4'
installprefixexp='/usr/perl5/5.8.4'
installscript='/usr/perl5/5.8.4/bin'
installsitearch='/usr/perl5/site_perl/5.8.4/i86pc-solaris-64int'
installsitebin='/usr/perl5/5.8.4/bin'
installsitehtml1dir=''
installsitehtml3dir=''
installsitelib='/usr/perl5/site_perl/5.8.4'
installsiteman1dir='/usr/perl5/5.8.4/man/man1'
installsiteman3dir='/usr/perl5/5.8.4/man/man3'
installsitescript='/usr/perl5/5.8.4/bin'
installstyle='lib'
installusrbinperl='undef'
installvendorarch='/usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int'
installvendorbin='/usr/perl5/5.8.4/bin'
installvendorhtml1dir=''
installvendorhtml3dir=''
installvendorlib='/usr/perl5/vendor_perl/5.8.4'
installvendorman1dir='/usr/perl5/5.8.4/man/man1'
installvendorman3dir='/usr/perl5/5.8.4/man/man3'
installvendorscript='/usr/perl5/5.8.4/bin'
========================================================================
so all man pages are installed into the same location. Frankly it
surprises me too :)
>>> so the questions are:
>>> 1. what the point of i86pc-solaris-64int sub-hier in 5.8.4/lib (and
>>> site_perl/5.8.4 and vendor_perl/5.8.4)? First guess was `dependency
>>> on some binary stuff', but that's seems to be wrong.
>>>
>>
>> You are correct, the i86pc-solaris-64int is platform dependent
>> directory.
>>
> What is kinda strange, since for example
> /usr/perl5/5.8.4/lib/i86pc-solaris-64int/MIME is not Solaris-specific.
> Most modules there are POSIX-specific, and very few of them actually
> i86pc + solaris + 64bit specific.
I have to agree with you :)
>>> 2. what the difference between $VERSION/lib, site_per/$VERSION (note:
>>> no lib/) and vendor_perl/$VERSION (once again no lib/)?
>>>
>>
>> Original reason to create 'perl(core)' 'site' and 'vendor' was to
>> separate directories for modules shipped with perl itself, shipped by
>> your distribution (vendor) and compiled on your own box (site).
>>
>> So modules shipped with Solaris should be in the vendor directory.
>> ( Oooh, why is SUNWimagick shipping
>> /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int/Image/Magick.pm ?!? )
>> Correct way to do that (again, check MakeMaker documentation)
>>
>
> Yep, my initial question was about policy. I'm not arguing, just asking
> where to put stuff.
I would recommend to use preconfigured vendor dirs.
--
Vlad
pgpJ9VjBo7y9G.pgp
Description: PGP signature
_______________________________________________ pkg-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/pkg-discuss
