Organizing software - where in the filesystem?

I guess it's also a matter of personal taste, but since I'm starting with a fresh 10.10 install I thought maybe this time I'll keep my system more organized.

What is/are the conventional place(s) to store software and applications?

I have some stuff I get using git (e.g. bioperl), there are some apps I simply download and extract to some place (e.g. eclipse) and obviously I install software using apt-get.

Where is the conventional place to put all of these?


The traditional places to install additional software is either /opt or usr/local See also the other similar question


For software installed via package management you do not need to care where it is installed, you will only manage it with some package management software like apt-get, aptitude or synaptic anyway.

The usual places are, as already mentioned by txwikinger, /opt and /usr/local. I would generally put software that I compile myself into /usr/local, as that has the usual directory structure (bin, lib, ...) already in place. Big software that expects a directory of its own I install into /opt, I think that is the original intent of that folder.

I'm also using a folder for small, self-contained applications in my home folder for some apps, mainly because my home folder is on a seperate partition that I keep when reinstalling the system. So I don't have to install those applications again.


like everyone else said, the package manager will put things where it needs them to be put.

I tend to have a projects/ folder where I checkout my random git projects.

Eclipse likes to keep its projects in workspace/ Depending on how much development I do under eclipse I would do something like $HOME/workspaces/{AndroidStuff, CrazyRandomIdeas} depending on if the things I'm working on should be in its own workspace or is a small project.

Also, occasionally I like to install things in my $HOME since i'm just playing with things and don't want to pollute my filesystem, which I tend to put in $HOME/local. Again this is just my style.. but I end up with

 $HOME/
      bin/  -->symlinks to binaries I installed locally and added to $PATH
      local/  --> local installs of applications, libs etc. 
      projects/  --> git check/svn checkouts etc of random code. 
      workspace/ --> eclipse stuff.

Try not to install anything in your root filesystem (/) unless you package it. It's a royal pain to uninstall things, (there's always a make install but rarely do you ever get a make uninstall). Also, that's the entire point of a packaging system, to keep track of your programs, files, configs, etc.