On Wednesday, August 14, 2002, at 07:13 , Morbus Iff wrote:
>> #! /usr/bin/perl
>> #! /usr/local/perl
>
> In the default Perl 5.6.0, it's located at /usr/bin/perl. With a default
> install of Perl 5.8.0, it's installed into /usr/local/bin/perl, but also
> /usr/bin/perl, allowing all scripts to function normally. In the
> "overwrite
> system" breed of install, the new Perl is installed into /usr/bin/perl
> (only).
{ Editor's Note: my apologies that this is going to be a bit long, and
technical
but I fear that having illustrations of the issues may help
clarify my concerns... }
This is meandering towards my issue. I am less concerned
with where the 'binary image' for "perl" is actually parked
in the file system -
eg:
vladimir: 53:] ls -li /usr/bin/perl /usr/local/bin/perl
/usr/local/bin/perl5.6*
558745 -rwxr-xr-x 3 root other 1167212 Aug 4 22:37 /usr/bin/
perl
558745 -rwxr-xr-x 3 root other 1167212 Aug 4 22:37
/usr/local/bin/perl
558745 -rwxr-xr-x 3 root other 1167212 Aug 4 22:37
/usr/local/bin/perl5.6.1
vladimir: 54:]
one binary with two hard links... and one Inode to rule them all...
I am concerned with how the Config.pm is rigged for dealing with
a) subsequent installations of "executables"
b) subsequent installations of "libraries" and "modules"
when building perl - the specific questions from config deal with
such matters as:
"Do you want to configure vendor-specific add-on directories? [n] y
Installation prefix to use for vendor-supplied add-ons? (~name ok)
Installation prefix to use for vendor-supplied add-ons? (~name ok) /usr
Pathname for the vendor-supplied library files? (~name ok)
[/usr/lib/perl5/vendor_perl/5.6.1]
Pathname for vendor-supplied architecture-dependent files? (~name ok)
[/usr/lib/perl5/vendor_perl/5.6.1/i386-linux]
Lastly, you can have perl look in other directories for extensions and
modules in addition to those already specified.
Enter a colon-separated set of extra paths to include in perl's @INC
search path, or enter 'none' for no extra paths.
Where do you keep publicly executable scripts? (~name ok) [/usr/bin]
Pathname where the add-on public executables should be installed?
(~name ok)
[/usr/bin] /usr/local/bin
"
{ from the linux build... }
Given that I already have 'rules' about how to do this for
the FreeBsd, Solaris, Linux installations - I thought I would
see if darwin, being a bsd derived product, would follow the
more traditional 'BSD-ism' of old.
Things use to roll forward in the format
/usr/unsupported - things we are not yet committed to
/usr/local - our site specific tweeks
/usr - vendor supplied, vendor supported
But since I am not seeing 'perl' show up in the 'software updates'
from Apple - it seems that I will be maintaining the perl release
for our darwin boxes - hence.... I would prefer NOT to make a
hash of it all. So jeeves here is still running the 5.6.0 release
that came from Apple - but I have been installing various modules
from the CPAN that I find useful.... but some of that causes
some problems - as with the loss of /usr/bin/head...
{ yet I do not want to go through the game of having to rebuild
mod_perl for apache on the darwin boxes.... so I am somewhat
reluctant to simply 'shift it all and let God choose the losers'
as we went through with the Main WebServer... }
Back in the SunOS 4.X and smaller days, when it was a Pure BSDism
they held to the true faith. Now that the Solaris world of 5.X
has showed up they have gone over to the 'dark side'[1] and become
one with the Evil AT&Tisms - some of which I like. But they started
to deliver a minimal installation of perl 5.005_003 with 5.8 -
and have it all jinkied about in /usr/perl - so my rebuild still
allows that sun may do what it will - and hence the @INC is
built for
@INC:
/usr/local/lib/perl5/5.6.1/sun4-solaris
/usr/local/lib/perl5/5.6.1
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris
/usr/local/lib/perl5/site_perl/5.6.1
/usr/local/lib/perl5/site_perl/5.005/sun4-solaris
/usr/local/lib/perl5/site_perl/5.005
/usr/local/lib/perl5/site_perl
/usr/local/lib/perl5/vendor_perl/5.6.1/sun4-solaris
/usr/local/lib/perl5/vendor_perl/5.6.1
/usr/local/lib/perl5/vendor_perl
/usr/perl5
/usr/perl5/site_perl/5.005/sun4-solaris
/usr/perl5/site_perl/5.005
/usr/perl5/site_perl
.
whereas my default darwinism from apple is:
@INC:
/System/Library/Perl/darwin
/System/Library/Perl
/Library/Perl/darwin
/Library/Perl
/Library/Perl
/Network/Library/Perl/darwin
/Network/Library/Perl
/Network/Library/Perl
.
rather hinkey that with the duplications there...
Since the Fink Folks are all in league with the idea of following
the AT&T deathStar Sys V isms[2] of /sw - the spawn of /opt - which
was the posix way[3] - it would seem that we will need to rebuild
perl to include their section as a part of the @INC in perl -
which can be done if you include their path section at the question
"Enter a colon-separated set of extra paths to include in perl's @INC
search path, or enter 'none' for no extra paths."
which I did with the solaris build to include the /usr/perl5 stuff
as noted above.... Just in case Sun opted to ship anything that
would be targetted at their original notion, and/or, into the
vendor_perl sub directory as occurred with the redhat 7.3 release
of perl....
so all I really want to know is
"what is the canonical orthodox perl way
as executed in the canonical orthodox apple way?"[4]
that I should be doing these builds of perl for darwin.[5]
ciao
drieux
---
foot notes:
[1] read as 'Spawn of Satan'
[2] op cit supra 1
[3] op cit supra 2
[4] I am still working off enough bad kharma as it is...
[5] God's One True, Holy and Divine Ordering of the Cosmos
ps: Why does it not surprise me that PerlGeeks
have 'religious wars' over whether or not the
bumper sticker philosophies are truer than the
pre bumper sticker philosophies....
but I guess it could be worse...