Hello, Vladimir Marek wrote: > Hi, > > This mail has been brought to my attention. > >> While trying to package some useful Perl modules I found out that it's >> absolutely unclear how filesystem layout should look like. >> Quick look at /usr/perl revealed that few possibilities exists: >> > That's perl way of doing things. It's skimmed in > > $ perldoc ExtUtils::MakeMaker > ( beware, sun ships perldoc in /usr/perl5/5.8.4/bin/perldoc , which is > sort of interesting concept to me <g> ) > > and look for INSTALLDIRS > > You will see that there are three possibilities > a) perl (also known as 'core') > b) site > c) vendor > So far everything is OK.
> 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 >> 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. > >> 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. _______________________________________________ pkg-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/pkg-discuss
