Doc Pain“I prefered kde in /opt. It was easy to upgrade that way.
Now everything gets jammed into /usr like on Windows into system32.”
In BSD land, there’s a strict recommendation where to put which files. While the basic OS resides in the /etc and /usr subdirs, everything that does not belong to the OS itself is located in /usr/local. Today as /usr/X11R6 is to be obsoleted, this subdir is holding everything except the OS, while it supports the basic separation that you know from the directory structures above, such as /usr/local/bin, /usr/local/include or /usr/local/lib. To delete everything except the OS (for example, if you want to reinstall all your additional applications), just delete /usr/local – your OS won’t be affected in any concern.
Example: The inetd system service has its control script as /etc/rc.d/inetd { start | stop | status }, its config file as /etc/inetd.conf, and its binary in /usr/sbin/inetd. The additional DHCP server service (that does not belong to the OS) has /usr/local/etc/dhcpd.conf, /usr/local/etc/rc.d/dhcpd.sh and /usr/local/sbin/dhcpd.
Similar do the doc/ or examples/ subdirs work – /usr/share/examples or /usr/local/share/examples.
I may say that the directory structuring of Linux OS is a bit untidy sometimes, while I personally like Slackware because you tend to find everything you’re searching for in a relatively obvious position.
As it has been said by someone else before, /opt (or /usr/local/opt) would be a good place to store installed applications that do not match the bin/, lib/, include/ etc. separation, so all of them get a /usr/local/opt/APPNAME dir, and maybe a symlink of the executable to /usr/local/bin because it’s contained in $PATH, so you don’t need to call the executable by absolute name.
If course, you’re free to install apps on a per-user basis, $HOME/bin, $HOME/lib etc. are used if –prefix is set to your ~ dir.