10.5 and $PATH variable
Juan Manuel Palacios
jmpp at macports.org
Wed Jan 9 14:49:59 PST 2008
On Jan 9, 2008, at 5:28 PM, Matrix Mole wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I just obtained a new mac mini today with Leopard installed on it.
> Since
> this is my first experience with 10.5, I'm still learning some things.
> One of the first things I did though was to install macports. After
> the
> installation, I noticed that the .profile file wasn't modified to
> include /opt/local/bin and /opt/local/sbin like my 10.4 version was.
> At
> least, I think I installed the 10.4 version from the dmg image.
>
> Anyway, after doing a little looking around on the file system and
> reading the startup files, I discovered two things. First, there is no
> default .bash_profile, .bashrc, or .profile in the users startup
> directory. No problem there, just left up as an experience for the
> user
> to perform if they need to customize their environment beyond the
> default. Secndly, I learned that Leopard has /etc/paths and
> /etc/manpaths files that are used during login to set the default
> paths
> and manpaths. By adding /opt/local/bin and /opt/local/sbin to /etc/
> paths
> and putting /opt/local/man into the man path, I can guarantee that
> these
> are added to the path for any user on the system.
>
> This is actually a pretty cool idea, and it prompted the reason for my
> email. Could it be possible to modify the port install scripts to add
> it's paths to those two files on 10.5? Those files don't exist nor are
> used on 10.4 as I already checked, so the 10.4 install scripts
> wouldn't
> need modified.
>
> Just wondering, and not even sure if this has already come up and been
> discussed to death. Since I just got Leopard, I hadn't been reading
> anything related to that version up till now.
For the record, MacPorts developers are still somewhat figuring out
the best possible way to tweak a user's environment to include
MacPorts compatible settings.
1.6.0 sources and the pkg installers are pulled from the
"release_1_6" subversion branch, and in it the adopted approach is the
pkg's "postflight" script, which I authored, that gets run by
Insaller.app when the pkgs are used. Unfortunately, this script has
been exhibiting some bugs that I haven't been able to reproduce
locally in order to fix them, even though I tested and debugged it
thoroughly before putting it into production. I'm actively looking
into these issues, rest assured.
"trunk" sources (that is, unreleased code) approach the problem of a
MacPorts compatible environment by making use of the Leopard specific /
etc/paths.d and /etc/manpaths.d directories, as originally posted in
this thread. But that, added to being a Leopard only solution (and
thus leaving the still larger Tiger users pool out in the cold), also
creates other problems for us, since it *appends* MacPorts settings to
the environment (e.g., /opt/local/bin being at the end of $PATH) while
it has been established that it is best if they are *prepended* (/opt/
local/bin being at the *start* of $PATH).
So as you can see, there's still no silver bullet for this problem,
so please bear with us.
As for the workings of the "postflight" script in the 1.6.0 pkg
installers, please read "details of the postflight script" at http://guide.macports.org/#installing.macports
to become acquainted with the several reasons why the script might
not tweak the environment, as there are several. In short, the script
refusing to tweak a non-vanilla environment (or, obviously, refusing
to touch already customized ~/.profile or ~/.tcshrc files) is not
necessarily a bug.
As for the bugs that do exist, there are seemingly two macro cases:
1) the environment tweaks work as expected but then the script fails
to selfupdate the MacPorts installation due to rsync blocking on the
user's side: this is a completely harmless failure and thankfully a
very easy one to fix both by us and users experiencing it. The latter
should simply ignore the error and figure out how to unblock rsync to
then run "selfupdate" manually (or switch to other MacPorts updating
means, but that's an entirely different discussion). Some reports in
ticket #13742 have mixed this case in. Please ignore them.
2) the user's environment is a vanilla one, but for some still
undetected reason the script fails to tweak it to make it MacPorts
compatible. This is obviously an important bug and what I'm focusing
my energies on fixing, what ticket #13742 should be about.
Any help in getting this fixed will be greatly appreciated. I'll
analyze the feedback already received and will try to post new
questions/instructions in order to find the bugs and squash them.
Thank you all for your help! Regards,...
-jmpp
PS: There's also the "The following install step failed: run
postflight script for MacPorts-1.6.0." thread on this very list,
discussing the same problems. I'll try to keep discussion concentrated
there and will from now on reply only to that one.
More information about the macports-users
mailing list