对于那些不属于你的 distrib 存储库的软件包,你通常如何在 Linux 上安装它们?
我这边习惯安装在/opt。但是后来我在网上看到了这个文档:http://www.pathname.com/fhs/。现在我很困惑:显然 /usr/local 也是一种可能性。
两者有什么区别?有什么最佳实践可以分享吗?
谢谢
法贝尔爵士
答案1
- 必须编译和安装的所有内容Unix 风格并符合 FHS ->
/usr/local
- 其他所有内容(例如,带有自己的应用程序服务器和 zip 存档中的大量资源的 Java Web 应用程序 ->
/opt
答案2
作为额外的有趣信息:的原意/usr/local
是,如果/usr
是网络安装的(/usr
在多台计算机之间单独共享),/usr/local
那么将是计算机本地的单独文件系统(本地磁盘上的分区)。
谈论这个话题时,即使它与问题无关:如果有多台具有不同架构的计算机,那么自然/usr
每个架构都会有一台,但/usr/share
架构之间还会共享另一个单独的文件系统(因此称为“共享”)。
答案3
我的做法是,如果它需要前缀或它是一个二进制包,我会选择 /opt(这几乎是 Solaris 的方式)。如果我从源代码编译,我会选择 /usr/local。
答案4
以下是我对 FHS 标准的解读:
/usr/local 用于本地构建或本地安装的文件,无论是否打包,都成为操作系统实例的一部分。
/opt 是安装不属于操作系统的“外部”软件包的地方。
只要您仅在构建它们的单个系统上使用文件,/usr/local 就可以了,因此它是绝大多数开源软件的默认基目录。
如果您计划重新分发您的软件包,我建议使用自定义基目录,如 /opt/myPackage。