On Fri, 26 Sep 2003, Christopher Kings-Lynne wrote:
If you install many different versions in parallel, don't you give your
installation paths some meaning that contain the version number? In any
case, you can run initdb --version first if you're not sure about what is
Yes I do, but sometimes as different users you don't know what the path
is. I guess I can just go --version.
which is a bit easier to interpret than:
which is what you really want to know, i.e. what are the default paths applied
in the search for an executable invoked without an explicit path.
I think the problem here is the assumption that you don't need to explicitly
state the path to the executable when invoking a command from multiple
installations. If you've got specific requirements on which version to run
never just assume which one will be picked up, always take steps to verify
which one it is, explicitly state which one to use or accept that you may well
end up running the wrong and have to start again (if you're lucky enough to be
trying something that isn't going to permanently move you into a state where
you can't start again).
To take the normal sort of example in reverse:
I have a script for reading manuals, I call it rm, it can take some switches
lets say r and f, as well as the name of something to read about. I happen to
be sitting in / and I look and start wondering why there's a /sbin. So I think
I'll see if there's anything in the document store about it. So I type:
rm -rf sbin
(to do a recursive search of formated documents perhaps). I don't think about
it, verify it or anything. Why should I? It always just works. Unfortunately,
although I do know I'm doing this as root it doesn't occur to me there might be
another command called rm installed somewhere on the system that I might pick
Moral of the story, if it's in your path first then it's the default and you
should therefore be happy with the results or be prepared to live with them,
otherwise make sure what you're running.
Nigel J. Andrews