不仅Linux的文件系统结构,而且任何与POSIX兼容的系统(包括BSD,Solaris,甚至在较小程度上甚至是Mac OS X)都在
FHS中标准化.特别是对于Ubuntu,请看一下
Debian policy for Java和
packaging guide ubuntu-java团队.
如果您的程序以交互方式运行,它应该在$HOME / .your-program-name(或$HOME / .config / your-program-name)中存储信息(如数据库和设置).如果您的程序是系统服务,它应该将其信息存储在/ var / lib中.您还可以在/ etc / your-program-name中安装默认配置.
二进制文件是完全不同的交易,其位置的前缀应该是可配置的.要充分利用软件中心及其依赖/更新机制,package您的软件.这些二进制文件(以及与它们一起使用的库)如果打包将进入/usr/tree,如果手动安装则进入/usr/local /.无论前缀如何,二进制文件都会进入bin(即/usr/bin),库进入lib32 / lib64,其他数据进入共享.
如果您不想打包程序并且不想遵循FHS强加的结构(但您确实应该这样做),那么替代方法是将代码和其他对象放入/ opt / your-program-name.请注意,程序生成和操作的(可变)数据仍应进入$HOME / .your-program-name(交互式)或/ var / lib / your-program-name(服务).