例如,Linux 中是否有一个标准位置来保存源文件开放式SSL。我正在使用非默认版本的 OpenSSL 从源代码构建 Nginx。我需要下载并解压 OpenSSL,我是在主目录中完成的。现在,我想知道 Linux 中是否有一个标准位置/opt
?
答案1
每当你问自己这样的问题时,请查看文件系统层次结构标准(FHS)。在那里,您将找到以下条目:
usr/src :源代码(可选)
目的
源代码可能放在该子目录下,仅供参考
因此,您可以将源文件放在/usr/src
.也就是说,这是一个可选目录,因此您可以将它们保存在任何您喜欢的地方。将源代码编译成可执行文件后,源代码就不再相关,因此系统永远不会要求在特定位置可访问某些内容的源代码。
总之:/usr/src
这是一个相当标准的位置,但如果您愿意,可以随意选择自己的位置。
答案2
/usr/local/src
是保存源代码并构建源代码的安全位置。联邦调查局说:(桌子上的最后一行):
/usr/local : Local hierarchy
[...]
Requirements:
The following directories, or symbolic links
to directories, must be in /usr/local
Directory Description
[...]
src Local source code
并且
/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
注意:至少在 Debian 上,您的用户需要添加到staff
组中才能写入/usr/local
.
答案3
如果“标准”指的是传统的,那么解压和构建源代码的位置就是您的主目录。此类文件应该是暂时的,完成后删除,或者根据您的喜好保留,按您的意愿组织。您的主目录是您处理所有此类内容的区域。
如果您以后确实想保留它们,以供参考, 这 ”文件系统层次结构标准” 建议/usr/src
。但是,这是一个指南,而不是法律;并且,如果您养成了这种习惯,然后冒险进入非 Linux 系统,那么遵循它很可能会造成麻烦。例如,在 BSD 系统上,基本系统源代码保存在那里,您真的不想弄乱它们,即使在 Linux 上,您也可能面临与包管理器存储的任何源代码混合的风险,这是不可取的。
我建议/usr/src
总体避免。将任何东西保留在那里并没有明显的好处,如果你混淆了它的预期含义,还有潜在的风险。
答案4
您可以使用/usr/src
这个地方听起来很合理,并且基于 rpm 的发行版使用它来存储 srpm 包的内容。但像/opt
, /usr/local
,之类的任何其他地方~/src
都很好