[Hackage] #289: symlink binaries into ~/bin
Hackage
trac at galois.com
Sat Jun 7 15:57:31 EDT 2008
#289: symlink binaries into ~/bin
---------------------------------+------------------------------------------
Reporter: duncan | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone:
Component: cabal-install tool | Version: 1.2.3.0
Severity: normal | Keywords:
Difficulty: normal | Ghcversion: 6.8.2
Platform: |
---------------------------------+------------------------------------------
Currently cabal-install uses `--prefix=$HOME/.cabal` and does not specify
`--bindir` so we use `$HOME/.cabal/bin` as the bindir. Obviously this is
not on the `$PATH` by default.
It would be trivial to specify `--bindir=$HOME/bin` however the worry is
that we would be stomping on programs that the user has already installed
there. One solution is to continue to install into `$HOME/.cabal/bin` and
then to make symlinks into `$HOME/bin` if the target name does not already
exist. If the name does exist we could give a warning and let the user
sort it out.
Of course we need to be able to overwrite our own symlinks. We know it's a
symlink we're allowed to overwrite if it links into `$HOME/.cabal/bin`.
It would be nice to install into `$HOME/.cabal/bin` using versioned binary
names (Cabal supports that now) and symlink the generic name into
`$HOME/bin`.
We can discover the names of the binary we're installing by checking the
executable names in the `PackageDescription`.
Of course this has to be an optional feature since not everyone wants it
and there are no symlinks on windows. I'd imagine we'd have it in the
`~/.cabal/config` file something like:
{{{
prefix: $HOME/.cabal
-- bindir: $HOME/.cabal/bin
symlink-bindir: $HOME/bin
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/289>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects
More information about the cabal-devel
mailing list