Where to install programs? [duplicate]

Possible Duplicate:
What is the best place to install user apps?

I've downloaded a .tar.gz and ran sudo sh install.sh. It's asking me where to install the program to. I don't want it cluttering up my home directory, and I want it to be available in the applications menu. Where should I put it? /usr/bin? /usr/local/bin? Or are those only for single binaries? This program wants to create a folder.


Solution 1:

First of all which Application are you installing? It is always preferable to install through the native Package Management as the Package Manager will handle the location, updates, paths and the launchers (shortcuts) for you. Also updates would be handled. You should ideally search for the package in the Software Center or Synaptic. PPAs can be used if the software is not in the default repos.

However if you are sure of installing this package, use /opt directory, /opt/appname for example. /opt would be suitable for this kind of installs. Launchers may or may not be created depending on the installer. You can create a launcher manually if the installer doesn't create. You may also use $HOME/bin for putting all your apps.

Solution 2:

For all path-related questions, the Linux Filesystem Hierarchy Standard is the definitive reference.

If the program needs to create a folder, then /usr/local is the directory of choice; according to the FHS:

The /usr/local hierarchy is for use by the system administrator when installing software locally.

Avoid placing your local binaries directly under /usr, because according to the FHS, that hierarchy is reserved for the software provided by the Linux distribution (in this case, Ubuntu).

Note that, placing a binary in /usr/local/bin (or any other bin directory) will not create a menu entry; for that you have to provide a .desktop file and install it in the appropriate directory with the xdg-desktop-menu command.

Solution 3:

Usually you would put it in /usr, binaries in /usr/bin if it's something bigger it would go to /opt.