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).

  • People don't consistently follow any standard, but I would certainly not be surprised if I saw stuff in either /usr/local/* or /opt/yourorigname/*. I would be somewhat surprised by /srv for program binaries, since it is mostly for data. I would think you were evil for using /usr/share.
    – Zoredache
    Sep 17, 2014 at 0:23

1 Answer 1


/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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .