LINUX.ORG.RU

xdg стандарт, предназначение .cache

 


0

1

Здравствуйте.
Вопрос в рамках xdg стандарта. ~/.cache для чего? Имеется в виду кэш в обычном понимании или аналог /usr/var (т.е. возможность для приложений сюда писать)? Если посмотреть в HOME, то приложения создают свои «точеченые» директории со всякими сохранениями. Придерживаются ли они стандарта или должны класть свои сохранения в ~/.cache? Например emacs:

$ ls -l ~/.emacs.d
drwx------ 2 pavlick pavlick 4096 май  6 23:58 auto-save-list
drwxr-xr-x 2 pavlick pavlick 4096 май  6 23:58 games
drwxr-xr-x 2 pavlick pavlick 4096 апр 18 23:56 url

★★

Последнее исправление: leave (всего исправлений: 1)

~/.cache для чего?

user specific non-essential data files

Имеется в виду кэш в обычном понимании или аналог /usr/var (т.е. возможность для приложений сюда писать)?

Имеется ли в виду кеш? Да. Могут ли туда писать приложения? Да. Что этот набор слов вместе значит? Без понятия.

Если посмотреть в HOME, то приложения создают свои «точеченые» директории со всякими сохранениями. Придерживаются ли они стандарта

Нет.

или должны класть свои сохранения в ~/.cache?

Кому?

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Я читал стандарт.

/var This directory contains files which may change in size, such as spool and log files.

А в другие места приложениям писать не положено (home из виду упускаем). Является ли .cahe аналогом var, т.е. позволяет предназначена для run-time записи?

Куда emacs должен сохранить результаты встроенных в него мини игр, если он придерживается xdg?

pavlick ★★
() автор топика
Ответ на: комментарий от pavlick

/var

при чем тут /var?

Является ли .cahe аналогом var, т.е. позволяет предназначена для run-time записи?

user-specific аналогом /var/cache, наверное. но не всего /var

Куда emacs должен сохранить результаты встроенных в него мини игр

Куда их надо было бы сохранять?

Ну если они user-specific, то в .local/share, а если system-wide (например таблица рекордов), то в /var/games.

.cache-то тут каким боком?

если он придерживается xdg?

если ты настаиваешь на ложной предпосылке, то ответ будет любым.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 2)
Ответ на: комментарий от t184256

Ну если они user-specific, то в .local/share, а если system-wide (например таблица рекордов), то в /var/games.

В share программа не имеет право ничего писать, если пишет, то она кривая. Может ли emacs (правильно ли это будет) записать сохранения в .cache? Или правильный выход для него один - создать точечную директорию в home? /var мы не используем, нам нужет user specific решение.

pavlick ★★
() автор топика
Ответ на: комментарий от pavlick

$XDG_DATA_HOME defines the base directory relative to which user specific data files should be stored. If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used.

В share программа не имеет право ничего писать, если пишет, то она кривая.

Я тебе не верю. Обоснуй, я вечером почитаю.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Ну это логично, вывод напрашивается сам:

$XDG_DATA_DIRS defines the preference-ordered set of base directories to search for data files in addition to the $XDG_DATA_HOME base directory. The directories in $XDG_DATA_DIRS should be seperated with a colon ':'. If $XDG_DATA_DIRS is either not set or empty, a value equal to /usr/local/share/:/usr/share/ should be used.

Т.е. ~/.local/share /usr/local/share/ /usr/share/ являются аналогами, либо system-wide, либо user-specific.

$ man hier
/usr This directory is usually mounted from a separate partition. It should hold only sharable, read-only data, so that it can be mounted by various machines running Linux.

$ cat GNU Coding Standards
‘datarootdir’
The root of the directory tree for read-only architecture-independent data files. This should normally be /usr/local/share, but write it as $(prefix)/share.

pavlick ★★
() автор топика

Судя по треду, ты вообще не понимаешь, в чём суть XDG directory specifications.

В CONFIG лежат, внезапно, настройки и только настройки. То, что можно безопасно шарить, например, выложить как dotfiles-репозиторий на гитхаб. Никаких паролей, сохранений, никаких временных или var-данных.

В DATA приложения кладут всё остальное. User-specific data, т.е. пароли, логи, персональные настройки, _сохранения_, списки последних использованных файлов. То, что и показывать никому не рекомендуется, и будет очень-очень обидно, если удалить.

В CACHE кладут то, что обычно долго доставать или вычислять. Кэш браузера, кэш иконок, индексы поиска. Такая фигня, которую удалить не жалко совершенно, только чуть подтормозит приложение потом, когда будет кэш пересоздавать.

Связи с hier никакой нет. CONFIG - не совсем /etc, DATA - совсем не /usr/share. Один только CACHE - полный аналог /var/cache. Системные fallback-аналоги по спецификации нужны только лишь для fallback-а на некорректно настроенной системе (или наоборот, корректно настроенной, например, read-only системе).

E ★★★
()
Ответ на: комментарий от E

Спасибо за развёрнутый ответ. Думаю, я несколько разобрался. Думаю, ключевой момент - datarootdir и смежные установочные переменные никогда не будут указывать на home/xdg директории. Ну и как следствие - xdg директории не имеют таких ограничений (read only). Только лишь возможность переопределить system-wide значения.

pavlick ★★
() автор топика
Ответ на: комментарий от t184256

Да, не спорю. Я там был не прав. /usr/share read-only, ~/.local нет.

pavlick ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.