No, and you shouldn't need to.
The purpose of /usr/local
is to distinguish software which was compiled & installed by the local administrator from software distributed with the system (that is, software which can be installed via apt-get
).
By installing non-packaged software to /usr
, you risk causing conflicts, which could even cause system packages to fail for no apparent reason (e.g. if you overwrite a library with a newer version, or an incompatible build).
Package maintainers have to do a lot of extra work when compiling a package, to ensure it works flawlessly on every install, and regardless of what other packages are installed. This is only possible when they can look at the package repository, and know every other package which could potentially be installed. (In practice, they may only be concerned with a small subset of the packages; such as the libc toolchain, and the SDL libraries, for example.)
Compiling packages yourself is (by comparison) fast and loose: you don't care about maximizing portability; you just want it to build and work on your machine. You don't care if there are incompatibilities with stuff under /usr
, since it will not get overwritten, and you are free to install an incompatible duplicate of any library, so long as you stay under /usr/local
. You may even have very specific requirements (e.g. taking advantage of your machine's specific instruction set for boosted performance) which do not apply to other users of your linux distribution. And, if it is incompatible with some other piece of software you haven't installed yet, you'll deal with that when trying to install the new software, not in advance.
/usr/local
is superior to/usr
?