¿Existe documentación oficial en directorios como ~/.config y ~/.cache?

¿Existe documentación oficial en directorios como ~/.config y ~/.cache?

He visto que muchas aplicaciones utilizan estos directorios y ahora estoy considerando usarlos para mi aplicación. ¿Cómo sé que esta es una carpeta oficialmente admitida y no solo una ubicación del mes para una configuración/caché por usuario?

He estado buscando algo oficial de Ubuntu pero fue en vano; tal vez alguien más conozca los términos de búsqueda adecuados o la ubicación de esta documentación. ¿Es esto algo que debería aceptar como un lugar de práctica estándar no declarado?

Respuesta1

Sí, existe un estándar: estos están especificados por freedesktop.org y son parte deEspecificaciones del directorio base XDG.

especificaciones de configuracióndescribe solo los requisitos básicos, pero los detalles se encuentran en las Especificaciones del directorio base. Los directorios ~/.configy ~/.cacheson predeterminados a menos que se configure lo contrario:

Hay un conjunto de directorios base ordenados por preferencias en relación con los archivos de configuración que se deben buscar. Este conjunto de directorios está definido por la variable de entorno $XDG_CONFIG_DIRS.

Hay un único directorio base en relación con el cual se deben escribir datos no esenciales (en caché) específicos del usuario. Este directorio está definido por la variable de entorno $XDG_CACHE_HOME.

...

$XDG_CONFIG_HOME define el directorio base relativo al cual se deben almacenar los archivos de configuración específicos del usuario. Si $XDG_CONFIG_HOME no está configurado o está vacío, se debe usar un valor predeterminado igual a $HOME/.config.

...

$XDG_CACHE_HOME define el directorio base relativo al cual se deben almacenar los archivos de datos no esenciales específicos del usuario. Si $XDG_CACHE_HOME no está configurado o está vacío, se debe usar un valor predeterminado igual a $HOME/.cache.

Puede notar que estas especificaciones indican principalmente dónde se deben almacenar los datos, qué variables de entorno se usan y de qué manera (escritorio neutral, eficiente, etc.), pero la mayoría de los escritorios son libres de implementar la parte del "cómo". Los escritorios basados ​​en GNOME se utilizarán gsettingsdonde los usuarios de KDE pueden utilizar los mismos a través dekwriteconfig, pero ambos dependerán del ~/.configdirectorio en el proceso


Cuestionar puntos clave

¿Cómo sé que esta es una carpeta oficialmente admitida y no solo una ubicación del mes para una configuración/caché por usuario?

Estos directorios aparecen en la documentación oficial yEstándar de jerarquía del sistema de archivostambién los menciona. Esta es documentación oficial, por lo tanto, las carpetas son oficialmente compatibles.

¿Es esto algo que debería aceptar como un lugar de práctica estándar no declarado?

Depende de la aplicación que estés creando. ¿Se supone que la aplicación debe ser configurable por usuario o funcionar de manera consistente en todo el sistema? FHS nos dice que para cosas de todo el sistema deberíamos usar /etco/usr/local, pero los directorios XDG deben usarse para configuraciones específicas del usuario, ~/.cachey ~/.config. Por supuesto, si la aplicación no depende de la configuración específica del usuario,/var/cachése puede utilizar en lugar del directorio por usuario. Por supuesto, siempre se puede tener un único ~/.appname.confarchivo, directorio ~/.appname.db o ~/.appname/para guardar las configuraciones y el caché allí, pero eso no sería estándar; no es "malo", simplemente no estándar.

Ver también

información relacionada