суббота, 3 октября 2009 г.

Где размещать пользовательские настройки?

Раньше все Linux программы размещали свои пользовательские настройки в /home/user/.name_of_program, где .name_of_program мог быть как файлом, так и директорией. Сейчас появились: .cache, .local/share, .config. Ничего не упустил?
С одной стороны хорошо убрать настройки из корня, чтобы они не мешались с личными файлами, документами и т.д. А с другой, допустим мне нужно перенести или сохранить профиль программы, или, например, удалить его, чтобы сбросить настройки по умолчанию, сколько нужно обойти директорий и как ничего не потерять в процессе?
Я не против помещения профиля программы, например, в .config, для меня лично это не очень удобно, но в общем случае приемлемо. Но раскидывать настройки одной программы по диреториям - вот это мне не видится полезным.
Ваши мысли?

7 комментариев:

Анонимный комментирует...

> Ваши мысли?

а никаких =)

> Но раскидывать настройки одной программы по диреториям - вот это мне не видится полезным.

а раскидывать программу по нескольким каталогам это нормально? =)

Вообще тенденция хранить конфиги в XDG_CONFIG_HOME XDG_CACHE_HOME XDG_CONFIG_DIRS XDG_DATA_DIRS XDG_DATA_HOME XDG_SESSION_COOKIE мне нравиться, к тому же эти пути можно поменять без проблем в отличии от $HOME. а вот хранить всё в одной папке (и конфиг и файло с инфой, как делает к примеру мозила) мне кажется глупым, ведь дабы разобраться где хлам а где собственно сама конфигурация мне надо потратить некоторые усилия, а так cp $XDG_CONFIG_HOME в бекап и радуйся...

GiNeR комментирует...

"а раскидывать программу по нескольким каталогам это нормально? =)" - эти файлы не потеряны и их не трудно найти (dpkg -L packagenane, rpm -ql packagename, pacman -Ql packagename)
"к тому же эти пути можно поменять без проблем в отличии от $HOME" - когда это может быть нужно?
"а так cp $XDG_CONFIG_HOME в бекап и радуйся" - в идеале да, но, я бы не стал полагаться на разработчиков и сохранять только эту папку, т.к. допускаю, что они могли важные данные положить и в .local/share, и в .cache. Кроме того, возникает неудобство, когда нужно очистить или сохранить профиль конкретной программы, а не всех.

andy128k комментирует...

В "разбрасывании" файлов не вижу ничего плохого, если оно разумно. Например, настройки браузера и его кэш _должны_ лежать в разных каталогах. Кэшам место в каком-нибудь ~/.var/{progname}/.

Вадим комментирует...

Кэшам место в каком-нибудь ~/.var/{progname}/.

Если уж на то пошло, кэшам вообще не место в домашнем каталоге. Выделить им место где-то в /var/cache/программа/пользователь/ с нужными правами для пущей конфиденциальности.

По сабжу. Хранить данные в ~/.config/ — удачный компромисс. muhas (aka index.php) правильно пишет о переменных. Если так сделают — буду рад.

GiNeR комментирует...

Переменные есть, а как такового стандарта нет. Вот и получается, что какие-то настройки в корне, какие-то в .config, другие в .gnome, а что-то можно найти в .local/share. Думаю, что это главная проблема.

Вадим комментирует...

Ну, так всегда — проблема в головах.

ffsdmad комментирует...

я тоже негодую. особенно глядя как хранит себя трансмишен