Order of execution is based on PATH order - locations put first are searched first, if match is found it is executed, HOWEVER, programs mapping are cached so you need to refresh the cache before changes will take place (if you've used that app before). See http://www.thegeekstuff.com/2010/08/bash-shell-builtin-commands/ (point 3.):
hash command maintains a hash table, which has the used command’s path
names. When you execute a command, it searches for a command in the
variable $PATH. But if the command is available in the hash table, it
picks up from there and executes it. Hash table maintains the number
of hits encountered for each commands used so far in that shell.
and
You can delete a particular command from a hash table using -d option,
and -r option to reset the complete hash table.
Sidenote: maybe try to create alias instead of wrapper?
The shell path (i.e. PATH) for a user in OSX is a variable defining a set of locations in the file system whereby the user can use certain applications, commands and shell scripts without the need to specify the full path to that command or program in the Terminal.
If you enter abc
in Terminal the first occurrence of abc
in one of the paths defined in PATH will be executed.
To access or print the variable PATH you have to use $PATH.
Example:
echo $PATH
The variable PATH has a general and a user specific part.
1. General part:
The general part is defined by the (superior) file /etc/paths and by the (inferior) content of the folder /etc/paths.d.
The default content of the file /etc/paths (in OS X) is:
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
The default folder /etc/paths.d is empty. On older systems with an X11 installation the folder contains a file named 50-X11 with the content
/usr/X11/bin
which adds an additional path (/usr/X11/bin) to PATH.
The prepended number- just defines the load order.
My /etc/paths.d folder contains the following files:
/etc/paths.d/40-mysql #file content: /usr/local/mysql/bin
/etc/paths.d/50-X11 #file content: /usr/X11/bin
/etc/paths.d/60-testdisk #file content: /usr/local/testdisk
/etc/paths.d/70-git #file content: /usr/local/git/bin
The resulting PATH is
echo PATH$
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/X11/bin:/usr/local/testdisk:/usr/local/git/bin
2. User-specific part:
The user-specific part is defined by the file ~/.bash_profile. If you have created a folder bin in your user folder and installed some apps in there you can add the following line in ~/.bash_profile
export PATH="/Users/username/bin:$PATH"
or
export PATH="$PATH:/Users/username/bin"
The first entry preferably executes a command abc
found in the /bin folder of the user, the second one a command abc
found in the general path before executing an identical named one in the ~/bin folder.
This part of PATH defined by .bash_profile is only effective for the respective user.
To add the path entered in .bash_profile to the current PATH immediately you have to source the file once:
source ~/.bash_profile
3. Temporary paths
By issuing export PATH="/Users/username/bin:$PATH"
or export PATH="$PATH:/Users/username/bin"
in Terminal you can add a path temporarily.
This part of PATH is lost after closing the Terminal window, logging out or rebooting the Mac.
Examples (using the general part from above):
The file ~/.bash_profile contains export PATH="/Users/username/bin:$PATH"
and you issue in Terminal export PATH="/Users/username/bin2:$PATH"
then the resulting PATH is:
/Users/username/bin2:/Users/username/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/X11/bin:/usr/local/testdisk:/usr/local/git/bin
\____temp. path_____/
The file ~/.bash_profile contains export PATH="$PATH:/Users/username/bin"
and you issue in Terminal export PATH="/Users/username/bin2:$PATH"
then the resulting PATH is:
/Users/username/bin2:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/X11/bin:/usr/local/testdisk:/usr/local/git/bin:/Users/username/bin
\____temp. path_____/
Summary
PATH (or $PATH) is defined by several files: /etc/paths, the files in /etc/paths.d and ~/.bash_profile and in case of adding a temporary path by additional RAM content.
Best Answer
Looks like you already have
libtool
installed viabrew
but it is not linked so the required symlinks in/usr/local/bin
are still missing. To create them,