I'm a newbie Linux (Ubuntu) user and I'll like to know if someone can give some advices of where to install stuff, which folders don't touch, which is the meaning of each folder and so on.

My first concern is, should everything go into my home folder? I've installed "manually" Komodo Edit (it's an IDE) and it has gone to my home folder, I really don't like the idea of having an application there. (in windows I used to have my workfiles/pictures/downloads... partition and then the OS partition with all the apps).

So, is there any place where I could install this software? Any advice for having my home folder ordered? Maybe I should create an apps folder in my home dir?

Thanks in advance. :)

pd: most of the time I use apt to install stuff, but I don't always found the software I want there...

I have seen that there are basically three ways of installing software. First, packages (best one), then selfcontained tarballs (just unzip and run), and finally the "make install" stuff. I've created a Apps folder for the tarballs and for the "make install" apps I'm using "checkinstall" which creates a package so that later is easier to uninstall this apps. Anyway, thanks for the answers. :)
–
doupMay 2 '10 at 11:06

The filesystem stuff is called POSIX. There are many documentations which describe that. Besides that. Usually you install software in 3 flavours. 1) .deb with APT/dpkg 2) source (./configure, make, make install) 3) unzip it. Komodo is most likely the third one. Usually when you would install a software, you have to use the following commands. ./configure --prefix=/usr && make && sudo make install. || HOWEVER. It is NOT recommended. You should just use the PPAs: launchpad.net/ubuntu/+ppas (click on one to get more info. In a nutshell, fresh/other software)
–
ShikiApr 30 '10 at 21:38

(More info: PPA is Personal Package Archive in short. Its like having a small space (~1gb) where you can upload your source package, and the servers will create .debs from it. Whats the point ? You can make .deb packages with ease, distribute them , so on. Also, its a piece of cake to add such a PPA to your Ubuntu. Just click on one and use the "More about installation.." blue text.)
–
ShikiApr 30 '10 at 21:39

Under Linux directories in the root folder / are laid out according to the Filesystem Hierarchy Standard. Usually one uses a package manager provided by the distribution to install and uninstall software. There are also several places where configuration files are stored (most notably in /etc/) and sometimes these need to be edited by the user. Otherwise there should be little need to mess around outside of your home directory.

When you install software by hand you usually do not want to install into the system directories like /usr/bin/, /bin/ or /sbin/ or /usr/sbin/. Instead manually installed software should use /usr/local/ instead to avoid clashes with software installed by with the package manager and which effectively has the same structure like / (i.e. for manual install use /usr/local as prefix)

When you install software outside of the usual structure, the shell migh not find the executables and the binaries might not find libraries it was linked against. Binaries are searched for in all directories listed in the shell variable $PATH that you can adjust. The same holds for $LD_LIBRARY_PATH which holds the list of directories to search for libraries when resolving link dependencies (see man ld).

(Note: above contains a lot of "usually" and "customary". This is because nobody forces you to follow some (reasonable) standard -- you are free to shoot yourself in the foot.)

In the FHS all files and directories
appear under the root directory "/",
even if they are stored on different
physical devices. Note however that
some of these directories may or may
not be present on a Unix system
depending on whether certain
subsystems, such as the X Window
System, are installed.

The majority of these directories
exist in all UNIX operating systems
and are generally used in much the
same way; however, the descriptions
here are those used specifically for
the FHS, and are not considered
authoritative for platforms other than
Linux.

/ Primary hierarchy root and root directory of the entire file system
hierarchy.

/bin/ Essential command binaries that need to be available in single
user mode; for all users, e.g., cat,
ls, cp.