
#289: symlink binaries into ~/bin ---------------------------------+------------------------------------------ Reporter: duncan | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.4 Component: cabal-install tool | Version: Severity: normal | Resolution: Keywords: | Difficulty: very easy (<1 hour) Ghcversion: 6.8.2 | Platform: ---------------------------------+------------------------------------------ Comment (by duncan): Replying to [comment:8 igloo]:
For what it's worth, I agree with what I think Isaac is saying: Cabal should not put things in `~/bin` unless I explicitly tell it to.
Anything under `~/.cabal/` is fine, so for example you could put things in `~/.cabal/bin/` and recommend that I add that to my path.
For distros that put `~/.bin` on the `$PATH` I think we're failing unless we can make things just work. For systems not set up that way we'll have to ask or tell the user what to do. Remember most Ubuntu users don't even know what a `$PATH` is let along how to change one. Ubuntu sets things up such that if the `~/bin` dir exists then it gets put on the `$PATH` however it doesn't create the dir by default for new accounts. For Fedora it's apparently always on the `$PATH` even if it does not exist. So when we first set up the user's default `~/.cabal/config` we should check if `~/bin` is on the `$PATH`. If not we should tell the user that they need to take some action to make the executables available (either to put `~/bin` or `~/.cabal/bin` on the `$PATH`). It should also print out what configuration its chosen the first time you run it, when it creates `~/.cabal/config` so people know what it's going to do and what file to edit. I know you think we should never touch `~/bin` at all, but I think not working by default for standard distro setups is not a good option. I rather suspect we'll have to do different things on different platforms. For example OSX does not help us with per-user bin dirs at all, though it does have `/usr/local/bin` and cabal-install can use a sudo style command, so perhaps that's a sensible default on OSX. I'll try and get this issue of defaults discussed on some mailing list. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/289#comment:9 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects