What's the most appropriate directory where to place development software shared between users?
For sharing data files and directories among users within the same machine, the /srv
directory was recommended here:
- What's the most appropriate directory where to place files shared between users?
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 ...
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.
Links
- Use of /opt and /usr/local directories in the context of a PC
- https://codeghar.com/blog/should-your-software-go-in-usr-local-or-opt.html
- https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/c23.html
Put it in /usr/local/
, it is ignored by package managers.