[Pythonmac-SIG] why does the Mac installer hack the user's .bash_profile?
Ronald Oussoren
ronaldoussoren at mac.com
Mon Apr 11 07:36:26 CEST 2011
On 7 Apr, 2011, at 22:48, Bill Janssen wrote:
> I've got a Snow Leopard buildslave I'm trying to debug. So I thought
> I'd try Python 2.7 on it. Normally, I advise people to never try to
> install a different Python on a Mac, as it's too embedded in the OS to
> do safely, without a great deal of domain knowledge. But here, I
> figured I could always wipe the disk and start over without too much
> loss.
>
> So I ran the installer, and tried a few things, and it didn't solve my
> buildbot problems. So I decided to go back to the original System
> python. But now I find that the installer has put the 2.7 Python on my
> PATH?!?
That's correct, there is an option to disable this behavior. This option is on by default because we had a lot of users that installed Python and then didn't know how to start python because we don't install files in /usr/bin.
> It does this apparently by hacking ~/.bash_profile. In there,
> there's a line saying
>
> The original version is saved in .bash_profile.pysave
That's odd, the scriptlet that does the work says ($PR is the path to the profile):
if [ -f "${PR}" ]; then
cp -fp "${PR}" "${PR}.pysave"
fi
echo "" >> "${PR}"
echo "# Setting PATH for Python ${PYVER}" >> "${PR}"
echo "# The orginal version is saved in `basename ${PR}`.pysave" >> "${PR}"
echo 'PATH="'"${PYTHON_ROOT}/bin"':${PATH}"' >> "${PR}"
echo 'export PATH' >> "${PR}"
>
> a file which doesn't seem to exist.
>
> So, why didn't I notice myself checking the checkbox to do this in the
> first place, and where is my original .bash_profile file?
The checkbox is on by default. Did you have a .bash_profile at all? The scriptlet I quoted earlier indicates that the backup is created when the source file exists.
Ronald
More information about the Pythonmac-SIG
mailing list