在Unix/Linux中保存用户配置数据的推荐方法是什么?我的编程语言是C++。配置数据将以XML/text/binary格式保存,我在处理此类文件时没有问题。我想知道我可以把它们放在哪里。例如,在Windows操作系统中,配置数据可能保存在注册表(旧方法)或用户应用程序数据目录中。那Linux呢?我需要配置文件的读/写访问权限。
发布于 2010-03-05 14:42:27
注册表的概念是Windows所特有的,微软曾承认它构思不周(参见this、this、this、this (see #2)和this)。
在Unix和Linux中,系统级程序的配置位于/etc中,也可能是特定于应用程序的子目录。
每个用户的配置数据以文本格式的隐藏文件形式保存在用户的主目录中,或者保存在用户主目录中的特定于应用程序的隐藏目录中。引用主目录的正确方法是通过环境变量HOME。通过将.作为名称的第一个字符来创建隐藏文件和目录。
系统范围配置的示例是/etc/wgetrc和/etc/ssh/。每用户数据的示例是$HOME/.bashrc和$HOME/.mozilla/。
发布于 2010-03-05 14:43:59
XDG基本目录规范指定了配置和其他文件在Linux和其他基于X的操作系统中应该存储的位置:
http://freedesktop.org/wiki/Specifications/basedir-spec
这是一种现代的方式,可能最终会减少典型用户的主目录中的点文件混乱。
发布于 2010-03-05 14:47:56
Dotfiles是经典的Unix解决方案。如果你想自己读/写所有的东西,那就去做吧。
但是,我使用的大多数现代程序都使用GConf来存储首选项。它使许多事情变得更容易,无论是作为开发人员还是作为用户(显然也是作为管理员,但我在这方面没有经验)。
https://stackoverflow.com/questions/2384933
复制相似问题