Данные конфигурации программы в Unix / Linux - PullRequest
7 голосов
/ 05 марта 2010

Какой рекомендуемый способ сохранить данные конфигурации пользователя в Unix / Linux?Мой язык программирования - C ++.Данные конфигурации будут храниться в XML / текстовом / двоичном формате, у меня нет проблем с обработкой таких файлов.Я хочу знать, где я могу их хранить.Например, в ОС Windows данные конфигурации могут храниться в реестре (по старинке) или в каталоге данных приложения пользователя.А как насчет Linux?Мне нужен доступ на чтение / запись к файлам конфигурации.

Ответы [ 4 ]

9 голосов
/ 05 марта 2010

Концепция реестра свойственна Windows, и однажды Microsoft признала его непродуманным (см. это , это , это , это (см. № 2) и это ).

В Unix и Linux конфигурация для общесистемных программ находится в / etc или может быть подкаталогом для конкретного приложения.

Данные конфигурации для каждого пользователя хранятся в домашнем каталоге пользователя в скрытом файле - в текстовом формате - или в скрытом каталоге конкретного приложения в домашнем каталоге пользователя. Правильный способ ссылки на домашний каталог - через переменную окружения HOME. Скрытые файлы и каталоги создаются путем создания . первым символом имени.

Примеры общесистемной конфигурации: /etc/wgetrc и /etc/ssh/. Примерами пользовательских данных являются $HOME/.bashrc и $HOME/.mozilla/.

4 голосов
/ 05 марта 2010

В спецификации XDG Base Directory указано, где конфигурация и другие файлы должны храниться в Linux и других операционных системах на основе X:

http://freedesktop.org/wiki/Specifications/basedir-spec

Это современный способ, и можетв конечном итоге уменьшите беспорядок в точечном файле в домашнем каталоге типичного пользователя.

2 голосов
/ 05 марта 2010

Dotfiles - это классическое решение Unix. Если вы хотите заниматься чтением / письмом самостоятельно, сделайте это.

Тем не менее, большинство современных программ, которые я использую, используют GConf для хранения настроек. Это делает многое проще как для разработчика, так и для пользователя (и, видимо, как администратора, но у меня нет там опыта).

1 голос
/ 05 марта 2010

Это немного зависит от вашего вида Linux, но, как правило, большинство программ имеют конфигурацию системы по умолчанию где-то в / etc с файлами .config в вашем домашнем каталоге, которые могут переопределить значения по умолчанию в каталоге / etc.


Отличный момент .config должен быть. [Имя файла конфигурации]

...