/opt is used for manually installed programs with self contained directories.
Programs in self contained directories will not show up in your PATH by default, but generally this is solved by creating symlinks in
/usr/local/bin to any binaries under
As implied above,
/usr/local is the other location for manually installed files, but it's generally only used for programs that split their files (
/usr/local/bin for executables,
/usr/local/lib for libraries, etc.).
/usr/local avoids potential conflicts between manually installed files and files installed by a package management system (yum, apt, etc. generally install files in
/usr/lib, etc.). Historically, conflicts tended to result in files being silently overwritten, causing all sorts of unexpected behaviour. Modern package management systems are better about this, but it's still best not to rely on automated conflict resolution that may or may not always do what you expect.