/opt
和目录之间有什么区别/usr/local
以及应该在其中安装什么样的程序?
我提到Linux 文件系统层次结构但解释不太清楚。根据上面的链接;
/opt
:- 此目录保留用于所有不属于默认安装的软件和附加包
/usr/local
:- 该/usr/local
层次结构供系统管理员在本地安装软件时使用。它需要确保在系统软件更新时不会被覆盖。
在没有任何联网计算机的 PC 环境中,应该将哪个目录安装可由多个本地用户访问的软件?(即,我应该在哪里安装像 netbeans 这样的软件)
谢谢
答案1
/opt
适用于不依赖于该包范围之外的任何依赖项的第三方应用程序。 适用/usr/local
于安装在该机器上、位于分发包管理器范围之外的包。
一个例子:
以 .deb 形式提供的开源 sip-client 将安装到/usr
。如果它是使用 Qt 框架构建的,apt 会将其作为依赖项引入。
从源代码构建的相同开源 sip-client 将驻留在其中,/usr/local
因此如果您稍后为同一应用程序安装 .deb 包,它不会被 apt 弄乱。您可以从源代码构建其依赖项,也可以从包管理器获取它们。
第三方应用程序/opt
应该是独立的。例如,使用 Qt 的专有 sip 客户端不会依赖于 apt 中的版本,而是会将其捆绑或静态链接进去。
欲了解更多信息,请查看文件系统层次标准。
答案2
我会安装第三方二进制包到/opt
。
我会把您自己从源代码构建的任何东西放进去/usr/local
。
netbeans
在 Ubuntu Repos 中。您需要特定版本吗?
答案3
这都是关于打包的。如果某些东西以 LHS 方式打包(将可执行文件放入 bin/ 库放入 lib/ 等),它应该进入 /usr/local。
如果某个东西有顶级目录,但不遵循该模型,则它会进入 /opt。通常,您必须明确将 /opt 中的内容添加到您的 PATH 中。
也可以看看关于超级用户的这个问题