In general, if a non-system installed and maintained binary needs to be accessible system-wide to multiple users, it should be placed by an administrator into
/usr/local/bin. There is a complete hierarchy under
/usr/local that is generally used for locally compiled and installed software packages.
If you are the only user of a binary, installing into
$HOME/bin is the appropriate location since you can install it yourself and you will be the only consumer. If you compile a software package from source, it's also appropriate to create a partial or full local hierarchy in your
$HOME directory. The full local hierarchy would look like this.
$HOME/bin Local binaries
$HOME/etc Host-specific system configuration for local binaries
$HOME/games Local game binaries
$HOME/include Local C header files
$HOME/lib Local libraries
$HOME/lib64 Local 64-bit libraries
$HOME/man Local online manuals
$HOME/sbin Local system binaries
$HOME/share Local architecture-independent hierarchy
$HOME/src Local source code
configure, you should define your local hierarchy for installation by specifying
$HOME as the prefix for the installation defaults.
make && make install are run, the compiled binaries, packages, man pages, and libraries will be installed into your
$HOME local hierarchy. If you have not manually created a
$HOME local hierarchy,
make install will create the directories needed by the software package.
Once installed in
$HOME/bin, you can either add
$HOME/bin to your
$PATH or call the binary using the absolute
$PATH. Some distributions will include
$HOME/bin into your
$PATH by default. You can test this by either
echo $PATH and seeing if
$HOME/bin is there, or put the binary in
$HOME/bin and executing
which binaryname. If it comes back with
$HOME/bin/binaryname, then it is in your $PATH by default.