For sharing data files and directories among users within the same machine, the /srv directory was recommended here:

I am assuming this is still valid or recommendded — correct me if that changed.

But what should be the directory for shared development-related software like Java, Maven, Gradle? They will all be installed by unpacking .tar.gz archives. A central location for programs would be preferred over repeated installations by each user in their respective home directory.

As an example, in order to work with CI like Jenkins I would have installed many JDK versions: 11, 15 and 17, and similarly for Gradle and Maven. These are used to test a project with different environments. The mentioned software packets are installed simply by unpacking the .tar.gz files and updating the .profile file with the respective settings for them. And yes, I use these repositories as well to install servers, such as MySQL, RabbitMQ etc ...

  • 3
    Read man hier to learn about the Linux Filesystem Hierarchy .
    – waltinator
    Sep 9, 2021 at 19:16
  • I suppose that the software is not available through the package manager? Sep 10, 2021 at 10:51

2 Answers 2


Since these software projects are installed by extracting a .tar.gz file it sounds like they are self-contained applications and I would install them in /opt/<project>. Another common choice is /usr/local, but I prefer that for source based installs.



Put it in /usr/local/, it is ignored by package managers.

You must log in to answer this question.

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