保存软件源文件的标准位置

use*_*600 20 source directory-structure

Linux 中是否有用于保存源文件的标准位置,例如OpenSSL。我正在使用非默认版本的 OpenSSL 从源代码构建 Nginx。我需要下载并解压 OpenSSL,我是在主目录中完成的。现在,我想知道 Linux 中是否有标准位置/opt

ter*_*don 22

每当您问自己这样的问题时,请查看文件系统层次结构标准(FHS)。在那里,您会找到以下条目:

usr/src : 源代码(可选)

目的

源码可能放在这个子目录下,仅供参考

因此,您可以将源文件放在/usr/src. 也就是说,这是一个可选目录,因此您可以将它们放在任何您喜欢的地方。将源代码编译成可执行文件后,源代码就不再相关了,因此系统永远不会要求在特定位置可以访问某些内容的源代码。

总之:/usr/src是一个非常标准的位置,但如果您愿意,可以随意选择自己的位置。

  • 请注意,您_真的_不想在_非_Linux 系统上弄乱`/usr/src`。默认情况下,BSD 将其基本系统源保留在那里,您不想将它们与第三方软件混合在一起。只需在您的`$HOME` 某处构建... (8认同)
  • 我会更进一步说你不应该在任何系统上接触`/usr`。你应该把东西放在`/usr/local`。BSD 介意你使用 `/usr/local/src` 吗? (5认同)
  • 它说“仅供参考”。同样的标准说你不应该在那里构建源代码,所以如果你打算做任何开发,/usr/src 绝对不是放置源代码的地方。 (2认同)

Fah*_*tha 18

/usr/local/src是保存源代码和构建源代码的安全场所。FHS

Directory   Description  
src         Local source code
Run Code Online (Sandbox Code Playgroud)

并且

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

不清楚“本地源代码”是什么意思,但很明显系统不会尝试在 中放置任何东西/usr/local/src,不像/usr/src,因此将代码放在那里似乎没有什么缺点。

事实上,我在一个单独的文件系统上有我的:

Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/data-local_src     79G   46G   30G  61% /usr/local/src
Run Code Online (Sandbox Code Playgroud)

注意:至少在 Debian 上,您的用户需要添加到staff组中才能写入/usr/local.

  • 至于“本地源代码”是什么意思,通常是指由本地系统管理员_控制而不是由_分布_控制。与 `/usr/local` 下的其他所有内容相同(理论上)。所以基本上它意味着你所描述的。 (2认同)

Lig*_*bit 9

如果您所说的“标准”是指常规的,那么解压和构建源代码的地方就是您的主目录。这些文件应该是暂时的,在您完成后删除,或者根据您的喜好保留,随意组织。您的主目录是您处理所有此类内容的区域。

如果您确实希望以后保留它们,作为参考,“文件系统层次结构标准”建议使用/usr/src. 然而,这是指南而不是法律;而且,如果您养成了这种习惯然后冒险进入非 Linux 系统,那么您很可能会因为遵循它而造成麻烦。例如,在 BSD 系统上,基本系统源保存在那里,您真的不想弄乱它们。即使在 Linux 上,您也可能冒着与包管理器存储的任何源混合的风险,这是不可取的。

我建议避免/usr/src整体。将任何东西保留在那里没有明显的好处,如果你混淆了它的预期含义,就会有潜在的风险。


Rom*_*nov 5

你可以使用/usr/src这个听起来合理的地方,基于 rpm 的发行版使用它来存储 srpm 包的内容。但是,其他任何地方一样/opt/usr/local~/src是好的