/ usr / local或/ opt?


43

对于不属于distrib仓库的软件包,您通常如何在Linux上进行软件包安装?

在我这边,我习惯于安装在/ opt中。但是自那以后,我在Internet上看到了这个文档:http : //www.pathname.com/fhs/。现在我很困惑:显然/ usr / local也可能。

两者有什么区别?有什么可以分享的最佳做法吗?

谢谢

法布尔爵士


神圣的战争领土,不是真正的编程话题。
dmckee 2010年

Answers:


32
  • 所有必须以Unix样式编译并安装并符合FHS的内容->/usr/local
  • 其他所有内容(例如,它自己的应用程序服务器附带的Java Web应用程序以及zip存档中的资源加载-> /opt

lintian不允许将软件包安装在/ opt都不安装在/ usr / local上
Cristiano

24

就像其他有趣的信息一样:的原始含义/usr/local是,如果/usr安装在网络上(/usr在多台计算机之间共享),/usr/local则将是计算机本地的单独文件系统(本地磁盘上的分区)。

而在该主题上,即使问题不合时宜:如果有多台具有不同体系结构的计算机,自然/usr每个拱形都有一台计算机,但是/usr/share在体系结构之间共享另一个独立的文件系统(因此称为“共享”) 。


4
否...历史上(是的,我在那里!)/ usr等拥有供应商提供的东西,/ usr / local是本地安装的东西(即bash,gcc和其他不错的东西)。
vonbrand

@vonbrand您真的与答案矛盾吗?听起来好像主机之间需要共享的所有内容都是/ usr,不需要的任何东西都位于/ usr / local中
Didier A.

@Didier A.,当我开始使用Unix('80es)时,它只有台机器,没有网络连接……并且它们有/ usr和/ usr / local。
vonbrand

@vonbrand哦,我很有趣。这样看来,拥有/ usr和/ usr / local的原始意图仍然是个谜。
Didier A.

@Didier A.,再一次:/ usr是操作系统附带的东西,“标准”东西,/ usr / local是本地添加内容(自制,从Usenet下车,从一个友好的同事那里偷偷拿来,……) 。不标准,只是常用。
vonbrand

7

我这样做的方法是,如果它本身需要一个前缀,或者它是一个二进制软件包,那么我会选择/ opt(这在Solaris中几乎是这样)。如果我是从/ usr / local编译的,那我该怎么做。


6

我将所有内容都放在一个私有目录中,然后使用GNU stow

因此,我将软件包X.ver安装到/BASE/stow/X.ver。那么GNU垫木将所有的包(用符号连接)结合成/BASE/bin/BASE/lib等等。

冲突和删除软件包更容易处理。


我通常将/ usr / local / stow / <packagename>用作存放“程序包”的目录,并认为这是一个好习惯-如果其他人在/ usr / local中查看,则可以清楚地知道发生了什么以及发生了什么系统正在维护符号链接。
Stephanie 2012年

3

这是我对FHS标准的解释:

/ usr / local用于本地生成的文件或本地安装的文件,无论打包与否,它们都会成为操作系统实例的一部分。

/ opt是安装“外部”软件包的地方,而不是操作系统的一部分。

只要仅在构建文件的单个系统上使用文件,/ usr / local就可以了,因此,它是绝大多数开源软件的默认基本目录。

如果您打算重新分发软件包,我建议使用自定义基本目录,例如/ opt / myPackage。


2

Solaris经常使用/ opt。现在,许多现代Linux发行版都希望将软件包放在/ usr / local /中。想法是一样的-一个放置使该计算机执行其工作(而不是操作系统)的软件的位置。它大致类似于Windows系统上的“程序文件”。

选择一个并坚持下去。将/ opt符号链接到/ usr / local很容易。


我喜欢Lee的评论,这是思考问题的好方法。在Debian机器上安装/ opt选项对我来说有点奇怪,但这可能只是个人喜好。
凯尔·霍奇森

请不要。FHS可能已经过时,但是在/ usr vs / usr / local vs / opt上的推理是合理的:标准,提供发行版;本地安装,例如github上的自制软件或实验性产品;供应商提供的非标准物品。
vonbrand

0

如果重新编译操作系统发行版提供的软件,以利用特定于您自己的计算机的若干体系结构优势,请使用/ usr / local。

如果您从操作系统发行版以外的其他来源添加软件,请将其放入/ opt。

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.