
* Brandon Allbery
On Sat, May 10, 2014 at 11:37 AM, Alexander Solla
wrote: But now consider:
$ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0 of the Cabal library
$ which cabal
/home/ajs/.cabal/bin/cabal
$ /home/ajs/.cabal/bin/cabal --version
cabal-install version 1.20.0.1
using version 1.20.0.0 of the Cabal library
This is why I keep, completely pointlessly, telling people to never ever use `which`. It lies. But people want the lies and get confused when they prove to be lies.
Try `type cabal` --- NOT `which cabal` --- to see what is really going on. Then use `hash -r` to fix it.
This problem is specific to bash, I believe. In zsh: % which which which: shell built-in command While `type` is POSIX, the output of `which` (for external commands) is better suited for use in command substitutions, so I mostly prefer it. And once one is aware of the PATH caching, the problem above isn't hard to recognize anyway. Roman