On Mar 3, 2009, at 7:55 AM, Vincent Lefevre wrote:
On 2009-03-03 07:30:18 -0800, Bradley Giesbrecht wrote:
On Mar 1, 2009, at 5:11 PM, Vincent Lefevre wrote:
if [ -n "$PERL5LIB" ]; then
PERL5LIB="${PERL5LIB}:/opt/local/lib/perl5/vendor_perl"
else
export PERL5LIB
PERL5LIB="/opt/local/lib/perl5/vendor_perl"
fi
My path to p5's looks like this:
/opt/local/lib/perl5/vendor_perl/5.8.9/
Wouldn't the full path including the version dir need to be added to
PERL5LIB?
I don't know whether this has changed in Perl 5.8.9 (I haven't
upgraded yet), but with previous versions, the version dir should
not be used in $PERL5LIB, as perl automatically adds the paths so
that modules installed with previous versions can still be used.
For instance:
$ perl -V
[...]
%ENV:
PERL5LIB="/Users/vinc17/lib/site_perl:/opt/local/lib/perl5/
vendor_perl"
@INC:
/Users/vinc17/lib/site_perl/darwin-2level
/Users/vinc17/lib/site_perl
/opt/local/lib/perl5/vendor_perl/5.8.8/darwin-2level
/opt/local/lib/perl5/vendor_perl/5.8.8
/opt/local/lib/perl5/vendor_perl/5.8.7/darwin-2level
/opt/local/lib/perl5/vendor_perl/5.8.7
/opt/local/lib/perl5/vendor_perl
/opt/local/lib/perl5/5.8.8/darwin-2level
/opt/local/lib/perl5/5.8.8
/opt/local/lib/perl5/site_perl/5.8.8/darwin-2level
/opt/local/lib/perl5/site_perl/5.8.8
/opt/local/lib/perl5/site_perl/5.8.7/darwin-2level
/opt/local/lib/perl5/site_perl/5.8.7
/opt/local/lib/perl5/site_perl
/opt/local/lib/perl5/vendor_perl/5.8.8/darwin-2level
/opt/local/lib/perl5/vendor_perl/5.8.8
/opt/local/lib/perl5/vendor_perl/5.8.7/darwin-2level
/opt/local/lib/perl5/vendor_perl/5.8.7
/opt/local/lib/perl5/vendor_perl
# export
Adding export PERL5LIB=/opt/local/lib/perl5/vendor_perl
@INC:
/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-thread-multi-2level
/opt/local/lib/perl5/vendor_perl/5.8.9
/opt/local/lib/perl5/vendor_perl
/opt/local/lib/perl5/5.8.9/darwin-thread-multi-2level
/opt/local/lib/perl5/5.8.9
/opt/local/lib/perl5/site_perl/5.8.9/darwin-thread-multi-2level
/opt/local/lib/perl5/site_perl/5.8.9
/opt/local/lib/perl5/site_perl
/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-thread-multi-2level
/opt/local/lib/perl5/vendor_perl/5.8.9
/opt/local/lib/perl5/vendor_perl
.
I don't have site_perl on my system so I'll assume that's something
you added in one way or another.
Are you suggesting using this in Portfiles?
Either the Portfile could provide the necessary options (I don't know
which ones) to change the default @INC in the perl binary (with the
advantage that modifying the environment variable won't be necessary)
or the PERL5LIB variable needs to be changed in the .profile (either
by MacPorts (base?) or by the user).
It would be nice to not have to change .profile. If a system has
multiple users or a user is added later this would be one more thing
that would need to be done.
Maybe we could add a port "macports-profile" that would be a script
similar to:
/opt/local/share/macports/setupenv.bash
with the addition of checking for perl5 activation among others.
And then instead making a many alterations to a users .profile we
would just add one:
. /opt/local/sbin/macports_profile
The macports_profile script would always append it's vars to the front
of existing vars so if PERL5LIB is already set in the users .profile
it would be maintained the the macports paths prepended.
I suppose the file /opt/local/etc/maports_profile.conf could be looked
for and if found could be parsed for overrides and additions.
Then if a new user is added they could run /opt/local/sbin/
macports_profile which would check the users .profile file and add the
source line if it's missing.
This is just an idea, the names and locations of the files might not
be great. Heck, the whole idea might be flawed.
If I have perl5.8 active and install a p5 and then deactivate perl5.8
and activate perl5.10 should I expect my p5 to be active and
functional?
I haven't tried. See the "perl -V" output without the version number
in $PERL5LIB.
Works.
I have a macports on my laptop that I'm keeping clean just to help
resolve this perl5 issue. I hope we can come up with a work solution
soon. Even if it's just the decision to instruct users to add PERL5LIB
to their .profile by hand.
Oh, and what about other shells? Let that small base work it out
themselves as they are probably used to doing?
//Brad
_______________________________________________
macports-users mailing list
macports-users@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macports-users