我应该在 /var 还是 /opt 中安装 Linux 应用程序?

我应该在 /var 还是 /opt 中安装 Linux 应用程序?

我运行了很多开源应用程序,包括 java 和 tomcat。似乎大多数指令都让我的应用程序从目录运行/var。但偶尔我也会看到目录/opt。当我这样做时,我也会看到/usr/local/甚至/etc

我应该何时将应用程序安装在一个文件夹或另一个文件夹中?每种方法各有利弊吗?这与版本历史有关吗(Solaris 与 Linux 或 Red Hat 与 Ubuntu)?

答案1

这些问题的标准是文件系统层次标准。这是一份相当大的文档。基本上(非常粗略地说),Linux 上的标准路径是:

  • /bin&/sbin是操作系统的重要程序,sbin 仅供管理员使用;
  • /usr/bin&/usr/sbin适用于不重要的程序,sbin 仅供管理员使用;
  • /var是程序的动态数据。它可以是缓存数据、假脱机数据、临时数据(除非它在 ​​中/tmp,每次重启时都会被清除)等。;
  • /usr/local用于本地安装的程序。通常,它托管符合标准但未针对操作系统打包的程序,而是由管理员手动安装(例如使用./configure && make && make install)以及管理员脚本;
  • /opt适用于未打包且不遵循标准的程序。您只需将所有库与程序放在一起即可。这通常是一种快速而粗糙的解决方案,但它也可以用于您自己编写的程序,并且您希望为其指定特定路径。您可以/opt/yourcompany在其中创建自己的路径(例如),在这种情况下,我们鼓励您将其注册为标准路径的一部分;
  • /etc不应包含程序,而是包含配置。

如果您的程序特定于服务提供的服务,/srv那么这也是一个不错的位置。例如,我更喜欢将其/srv/www用于网站,而不是/var/www确保目录仅包含我自己添加的数据,而不包含来自软件包的任何内容。

不同发行版之间存在一些差异。例如,RedHat 系统使用libexec目录,而 Debian/Ubuntu 系统则不使用目录。

FHS 主要由 Linux 发行版使用(实际上我不知道有任何其他操作系统真正遵循它)。其他 Unix 系统不遵循它。例如,BSD 系统倾向于用于/usr/local打包程序,而 Linux 则不是这样。Solaris 的标准路径非常不同。

如果您想了解更多信息,我强烈建议您阅读我上面链接的 FHS 文档。

答案2

opt代表可选软件。var代表可变系统文件。因此您的应用程序应该转到/opt

答案3

这取决于您当地的标准。

就我个人而言,我不会在没有充分理由的情况下将任何东西安装到 /var 中。我的 /usr/local 几乎总是通过网络挂载 nfs,因此任何未打包的东西都会安装到 /opt 中。

相关内容