Linux中是否存在用于保存源文件(例如OpenSSL)的标准位置。我正在使用非默认版本的OpenSSL从源代码构建Nginx。我需要下载并解压缩OpenSSL,并在主目录中完成了它。现在,我想知道Linux中是否有标准位置/opt
?
Linux中是否存在用于保存源文件(例如OpenSSL)的标准位置。我正在使用非默认版本的OpenSSL从源代码构建Nginx。我需要下载并解压缩OpenSSL,并在主目录中完成了它。现在,我想知道Linux中是否有标准位置/opt
?
Answers:
每当您问自己这样的问题时,请查看文件系统层次结构标准(FHS)。在那里,您会找到以下条目:
usr / src:源代码(可选)
目的
源代码只能放在此子目录中,仅供参考
因此,您可以将源文件放在的子目录中/usr/src
。也就是说,这是一个可选目录,因此您可以真正将它们保留在所需的任何位置。将源代码编译为可执行文件后,它们就不再相关了,因此系统将永远不需要在特定位置访问某些源代码。
结束语:这/usr/src
是一个非常标准的位置,但是如果您愿意,可以随时选择自己的位置。
/usr/src
在非 Linux系统上陷入困境。BSD默认情况下会将其基本系统源保存在此处,并且您不想将它们与第三方软件混合在一起。只是建在您的$HOME
某个地方...
/usr/src
Debian的衍生品,如果你有一定的安装包(gcc-6-source
,binutils-source
,DKMS封装,内核头文件等)。在Debian上,有一个不错的功能,您可以将自己添加到src
拥有的组中/usr/src
,然后以自己的身份写在那里(无需这样做sudo
)。
/usr/src/debug
和/usr/src/kernels
(AFAICS)。
/usr
任何系统。你应该把东西放进去/usr/local
。BSD介意您使用/usr/local/src
吗?
/usr/local/src
是保留源代码并进行构建的安全场所。FHS 说:
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
。
/usr/local/src
其他答案仅讨论/usr/src
/usr/local
(理论上)其他所有内容相同。因此,从本质上讲,这意味着您所描述的。
如果按“标准”表示常规,那么解压缩和构建源代码的位置就是您的主目录。此类文件应是临时的,完成后会删除,或根据需要保留(如果需要)组织。您的主目录是您玩所有此类内容的地方。
如果您希望以后保留它们,则建议参考 “ 文件系统层次结构标准 ” /usr/src
。但是,这只是指南,而不是法律。并且,如果您要养成这种习惯,然后尝试使用非Linux系统,则很容易因遵循它而引起麻烦。例如,在BSD系统上,基本系统源保存在此,而您确实不想弄混这些源。即使在Linux上,也可能存在与软件包管理器存储的任何源混合的风险,这是不希望的。
我建议避免/usr/src
整体使用。根本不保留任何内容并没有明显的好处,如果您混淆了其预期的含义,则可能会带来潜在的风险。
您可以/usr/src
在这里使用合理的声音,并且基于rpm的发行版将其用于存储srpm软件包的内容。但是,其他任何地方一样/opt
,/usr/local
,~/src
是好的