我正在贡献的应用程序需要配置文件作为其操作的一部分。当前它位于应用程序的根目录中。如果我遵循 FHS,配置应该存储在/etc/Shinobi
.该应用程序支持的操作系统是
Ubuntu 17.10.1 和 18.04
操作系统7
MacOS 10.7(+)
假设/etc/
目录将始终存在于操作系统中并/etc/Shinobi
在目录丢失时读取默认配置并抛出适当的警告是否安全?
答案1
通过这样做,您将改变应用程序的基本性质,使其不再独立于单个文件系统树中。这可能不是您的用户想要的;也不知道您的应用程序在实践中如何使用、分发和安装。如果您的应用程序将独立的单个存档安装到单个文件系统子树中,如下所示“便携式应用程序”安装,你会打破这个。如果您的应用程序 doco 建议将此作为安装它的最佳方式,你破坏了很多用户的东西。
您正在引入支持问题并产生支持费用(来自陈旧的配置文件、意外共享的配置文件、软件升级时的意外事件等),没有比使用 Linux 标准的某些部分更好的理由了许多基于 Linux 的操作系统故意不使用然后甚至不适用于非 Linux 操作系统就像您的程序所针对的 MacOS 一样。
被警告。
还要注意的是,这/etc
并不总是操作系统想要用于此类事情的地方。例如,在 BSD 上,应用程序被配置为使用/usr/local/etc
而不是/etc
.
XDG_CONFIG_HOME
同样,FreeDesktop.org 标准更倾向于应用程序使用和XDG_CONFIG_DIRS
环境变量指定的目录。
讽刺的是,你实际上是搬走来自应用程序的“便携式应用程序”模型,而不是使事情变得更加便携。
和你甚至没有做工作保持 doco 同步。
进一步阅读
- 沃尔多·巴斯蒂安、瑞安·洛蒂和伦纳特·珀特林 (2010)。 XDG 基础目录规范。 Freedesktop.org。
- 沃尔特·格伦(2019-05-22)。什么是“便携式”应用程序,为什么它很重要?。如何极客。
- 约翰·T·哈勒等人……”便携式应用程序指南”。 什么是移动应用程序?。便携式应用程序.com。