如何决定/定义应用程序的哪个文件驻留在何处?

如何决定/定义应用程序的哪个文件驻留在何处?

大多数应用程序的可执行文件位于 /usr/bin 中,其他文件也位于通常定义的文件夹中。

但我发现有些应用程序将其可执行文件保存在其他地方...现在,就像在 Linux 中一样,任何文件都可以执行,该文件实际上可以放在任何地方..

但是为了实现适当的隔离和内容,哪些位置被定义为应该最好用于应用程序的各种文件的位置?

有这样的规范吗?

答案1

具体到 Ubuntu,虽然遵循 FHS,但根据应用程序的提交方式,也有特定的政策。

如果提交应用程序是为了将其纳入宇宙或多元宇宙存储库,则必须遵循提交应用程序的方式所规定的政策(首先通过 Debian 或直接提交给 Ubuntu)。

如果应用程序将通过 MyApps 提交以纳入付费软件或附加软件存储库,则必须符合扩展策略。基本上,应用程序必须安装到并从中运行/opt/<appname>。您可以将信息保存到用户主目录,这些位置取决于您要保存的内容(设置应该保存在~/.config/<appname>)等中。这遵循freedesktop.org 标准。

答案2

UNIX/Linux 文件层次结构历史悠久,并且有许多标准。

文件系统层次标准 (FHS)定义哪个目录应用于什么目的

FHS 是基于 Linux 的系统的主要标准,由Linux 标准库 (LSB),许多 Linux 发行版都遵循了这一标准。

答案3

这实际上涉及文件系统层次标准。即使您考虑使用自己的应用程序,为了基于其定制隔离实现更好的集成,它被定义在/opt :附加应用软件包作为

目录 /opt/bin、/opt/doc、/opt/include、/opt/info、/o​​pt/lib 和 /opt/man 保留供本地系统管理员 (USER) 使用。软件包可能会提供打算放置在(通过链接本地系统管理员不允许修改或复制这些保留目录,但在没有这些保留目录的情况下也必须正常运行。

计划用户调用必须是位于在目录中 /opt//bin 或 /opt/ 层次结构下如果软件包中包含 UNIX 手册页,则它们必须位于 /opt//share/man 中或 /opt/ 层次结构下,并且必须使用与 /usr/share/man 相同的子结构。

软件包文件多变的(正常运作的改变)必须安装在/var/opt。请参阅 /var/opt 部分以了解更多信息。

必须将主机特定的配置文件安装在 /etc/opt 中。请参阅 /etc 部分以了解更多信息。

除了那些必须位于文件系统树内的特定位置才能正常运行的包文件之外,其他包文件可能存在于 /opt、/var/opt 和 /etc/opt 层次结构之外。例如,设备锁文件必须放在 /var/lock 中,而设备必须位于 /dev 中。

发行版可能会将软件安装在 /选择但未经本地系统管理员同意,不得修改或删除本地系统管理员安装的软件。

遵循这种格式的自定义应用程序更能得到 Ubuntu/Linux 系统的支持。此外..

基本原理或背后的根本原因

使用 /opt 安装附加软件是 UNIX 社区中公认的做法. 基于 System V 接口定义(第三版)的 System V 应用程序二进制接口 [AT&T 1990] 提供了与此处定义的非常相似的 /opt 结构。

Intel 二进制兼容性标准 v. 2 (iBCS2) 也为 /opt 提供了类似的结构。

通常,系统中支持软件包所需的所有数据都必须存在于 /opt/ 中,包括要复制到 /etc/opt/ 和 /var/opt/ 中的文件以及 /opt 中的保留目录。

对使用 /opt 的发行版进行微小限制是必要的,因为发行版安装的软件和本地安装的软件之间可能会发生冲突,尤其是在某些二进制软件中发现固定路径名的情况下。

/opt/ 下的目录结构由软件打包者决定,但建议将软件包安装在 /opt// 中,并遵循与 /opt/package 指南类似的结构偏离此结构的一个有效原因是支持包可能将文件安装在 /opt//lib 或 /opt//bin 中

相关内容