Sí, hay un estándar: estos están especificados por freedesktop.org y son parte de las Especificaciones del Directorio Base de XDG .
config-spec describe los requisitos básicos, pero los detalles se encuentran en las Especificaciones del directorio base. Los directorios ~/.config
y ~/.cache
son predeterminados a menos que estén configurados de otra manera:
Hay un conjunto de directorios base ordenados de preferencia 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.
Existe un único directorio base en relación con el cual se deben escribir los 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 en relación con el cual deben almacenarse 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 en relación con el 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 observar que estas especificaciones en su mayoría indican dónde deben almacenarse los datos, qué variables de entorno se utilizan 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 usarán gsettings
donde los usuarios de KDE pueden usar lo mismo a través de kwriteconfig
, pero ambos dependerán del ~/.config
directorio en el proceso
Pregunta puntos clave
¿Cómo sé que esta es una carpeta oficialmente compatible y no solo una muestra de la ubicación del mes para una caché / configuración por usuario?
Estos directorios aparecen en la documentación oficial y el Estándar de jerarquía del sistema de archivos también los menciona. Esta es la 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 especificado?
Depende de la aplicación que estés creando. ¿Se supone que la aplicación se puede configurar por usuario o que funciona de manera consistente en todo el sistema? FHS nos dice que para todo el sistema debemos usar /etc
o /usr/local
, pero los directorios XDG deben usarse para configuraciones específicas del usuario, ~/.cache
y ~/.config
. Por supuesto, si la aplicación no depende de la configuración específica del usuario, se puede usar / var / cache en lugar del directorio por usuario. Por supuesto, siempre podría tener un único ~/.appname.conf
archivo, un directorio ~/.appname.db
o un ~/.appname/
directorio para mantener las configuraciones y el caché allí, pero eso no sería estándar; no "malo", simplemente no estándar.
Ver también