当前位置: 首页>>技术问答>>正文


在PC的上下文中使用/opt和/usr/local目录

, ,

问题描述

/opt/usr/local目录之间有什么区别?应该为它们安装哪种程序?

我提到了Linux File-system Hierarchy,但解释并不清楚。根据以上链接;

/opt: – 此目录保留给所有不属于默认安装的软件和add-on软件包

/usr/local: – /usr/local层次结构供系统管理员在本地安装软件时使用。系统软件更新时,需要保护它不被覆盖。

在没有任何联网计算机的PC环境中,安装将由多个本地用户访问的软件的目录应该是什么? (即我应该在哪里安装像netbeans这样的软件)

谢谢

最佳解决方法

/opt适用于不依赖于所述包范围之外的任何依赖性的third-party应用程序。 /usr/local适用于在分发包管理器范围之外的此计算机上安装的软件包。

一个例子:

作为.deb提供的开源sip-client将安装到/usr中。如果它是使用Qt框架构建的,那么apt会将其作为依赖项引入。

从source构建的相同开源sip-client将驻留在/usr/local中,因此如果您稍后为同一应用程序安装了.deb软件包,它将不会被apt搞砸。您可以从源构建其依赖项,也可以从包管理器中获取它们。

/opt中的third-party应用应该是self-contained。例如,使用Qt的专有sip-client不会依赖apt的版本,而是捆绑或静态链接。

有关更多信息,请查看Filesystem Hierarchy Standard

次佳解决方法

我会将third-party binary-only软件包安装到/opt

你从源头建立的任何东西我都会放入/usr/local

netbeans位于Ubuntu Repos中。你需要一个特定的版本吗?

第三种解决方法

这都是关于包装的。如果以LHS方式打包(将可执行文件放入bin /library到lib /等),它应该进入/usr /local。

如果某个东西有顶级目录但不遵循该模型,那么它将进入/opt。通常,您必须在/opt中明确添加内容。

另请参见This question on superuser

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1329.html,未经允许,请勿转载。