
On Wed, Nov 5, 2008 at 5:36 PM, Manuel M T Chakravarty wrote: Ian Lynagh: On Tue, Nov 04, 2008 at 09:02:12PM -0500, Brandon S. Allbery KF8NH wrote: On 2008 Nov 4, at 20:26, Jason Dagit wrote: On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty
Are you sure it does deinstall the 6.8 compiler? After installing 6.10, there should be a 608/ and a 610/
directory. This
certainly happens on my Mac and I am not aware of an option to
change that
behaviour. I expect if you used the OSX installer then /Library/Receipts is
screwing you (it wipes the old files listed in the .bom file). Try
finding and removing the receipt directory and bom file before
installing. The only file I can see that looks relevant is
/Library/Receipts/boms/org.haskell.glasgowHaskellCompiler.ghc.pkg.bom Wouldn't removing it make uninstall impossible? In fact, if you did manage to get 2 versions installed, how would
/Library/Frameworks/GHC.framework/Tools/Uninstaller
know which version to uninstall? Wouldn't it only know how to uninstall
the version it came with? I'd suggest that the overlapping file
"Uninstaller" could be why the older version gets removed, but that
wouldn't explain why Manuel can install both at once. A current limitation of the MacOS package system is that it does not
support uninstalling of packages; cf http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareD...
/apple_ref/doc/uid/10000145i-CH6-DontLinkElementID_29 This is not a big drama on MacOS, as MacOS encourages the distribution of
software packages as "bundles": http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles... This essentially means that instead of sprinkling files all over the file
system (as is common in other OSes), MacOS applications and frameworks
(Mac-speak for libraries) are kept in a single directory. Uninstalling then
means doing an rm -rf on that directory. Unfortunately, some applications (including GHC and Apple's Xcode IDE)
can't be entirely contained in a single directory. In the case of GHC, we
want symlinks in /usr/bin. The established way of uninstalling such
applications is by supplying an Uninstaller script, just as I did for GHC.
(Apple does the same for Xcode.) The purpose of the Uninstaller script is too completely remove
GHC.framework from a machine - not just to remove one version. In fact, if
more than one version of GHC is installed, the Uninstaller will refuse to
run and require the manual removal of all versions, but the current (easily
achieved by a "rm -rf
/Library/Frameworks/GHC.framework/Versions/<version>"). The main feature of
the Uninstaller script is to get rid of all symlinks pointing into
GHC.framework. The framework itself is just deleted by a "rm -rf" as
expected. (It also removes the above mentioned receipt file.) So, to directly answer the above questions:
* The package manger (which uses the receipts) can't uninstall and the
uninstaller script doesn't need the receipt. So, even after deleteing the
receibt, you can still uninstall.
* The Uninstaller can uninstall any version (at least as long as no
symlinks are put into new directories outside of the bundle that the
Uninstaller doesn't know about). Is there an update on this thread? I would still like to have my cake and
eat it too, meaning ghc 6.8.3 and ghc 6.10.1. As far as I know the
installer hasn't been updated and if I try again I will lose my copy of
6.8.3.
Thanks,
Jason