This is something that has always confused me. Where do I install custom apps that are written by my team? Apps like report runners, queue->database writers, etc. i.e. the apps that are the reason the node exists in the first place. These apps have binaries (released by the application team periodically), variable data and configuration.
The FHS seems to suggest either /srv for "site-specific data served by this system" (FHS 2.3, p15) or /opt for "add-on application software packages" (FHS 2.3, p12) (with configuration in /etc/opt).
The Chef Ark cookbook would put the software into /usr/local/.
The SBT Native Packager would put the software into /usr/share.
So what is recommended? Is it different between Ubuntu and Centos (I use both).
/opt
is generally meant for large packages provided by third party vendors (Oracle or whatever)./usr/share
is just wrong./usr/local
is meant for local applications, as the name suggests.