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


65

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

我提到了Linux文件系统层次结构,但是解释并不十分清楚。根据上面的链接;

/opt :-此目录保留给默认安装以外的所有软件和附加软件包

/usr/local:- /usr/local层次结构供系统管理员在本地安装软件时使用。更新系统软件时,必须确保它不会被覆盖。

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

谢谢


4
Google Chrome opt出于某种原因使用该目录。
卡米洛·马丁

2
@CamiloMartin我想这是理性的opt
becko 2014年

4
@becko好吧,opt如果Google推荐了opt它,那肯定是一个不小的选择。
卡米洛·马丁

3
即使您没事,optimus Prime的音质也会更好。
erm3nda

2
大声笑..我来晚了..但看来你们大家都opt模仿了评论部分很多..:P
john400 '97

Answers:


71

/opt适用于不依赖于上述软件包范围以外的任何依赖关系的第三方应用程序。/usr/local适用于分发软件包管理器范围之外安装在此计算机上的软件包。

一个例子:

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

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

第三方应用程序/opt应该是独立的。例如,使用Qt的专有sip客户端将不依赖于apt的版本,而是将其捆绑或静态链接。

有关更多信息,请参阅文件系统层次结构标准


1
所以netbeans转到/ usr / local,因为它取决于jdk和其他编译器+加上Linux FHS?
Niroshan

1
答案是肯定的。
埃吉尔

1
如果我要conda按照此处的建议进行全局安装,/opt那么正确的地方是?
阿列克谢

@Egil,为什么Mac没有opt目录?
Pacerier's

我以前upvoted这个答案,但我现在看到它的结论从略有不同这个Linux杂志文章。本文暗示,对于打包的软件,由谁提供软件包很重要。如果包是从OS的包回购,那么它应该在安装/usr(或,据推测,甚至直接下/bin/lib等)如常。但是,如果它来自另一个来源,则应将其放入/usr/local.deb答案中可能包含“开源sip客户端” 。
sampablokuper '18

12

我将第三方仅二进制软件包安装到/opt

您从源代码构建自己的任何内容都会投入/usr/local

netbeans在Ubuntu Repos中。您需要特定的版本吗?


它背后是否有任何理论依据,或者仅仅是一种好习惯?(我以netbeans为例进行说明-我更改了该部分以消除任何歧义)。谢谢
Niroshan 2011年

我认为其他答案说得最好。通常,第三方二进制文件是独立的。
Broam 2011年

那些依赖于运行时的事物(例如Python或Java软件)呢?我会穿上它们,/opt但不确定是否正确。
卡米洛·马丁

8

这一切都与包装有关。如果以LHS方式打包了某些东西(将可执行文件放入bin /库中,将其放入lib /等中),则应放入/ usr / local。

如果某些内容具有顶级目录并且不遵循该模型,则它将位于/ opt中。通常,您必须将/ opt中的内容显式添加到PATH中。

另请参阅有关超级用户的问题


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.