¿Cuál es la relación entre .gconf, .gnome2, .cache, .local y otras jerarquías de archivos de puntos en mi directorio de inicio?

14

De acuerdo con esta respuesta , .local .cachey .configson, por convención, ubicaciones de almacenamiento de configuración adoptadas por Gnome y Ubuntu.

¿Son, .gnome .gnome2y .gconfpor lo tanto, directorios de configuración heredados, o se supone que coexisten?
¿Y la adopción de dconf altera estas convenciones de configuración de aplicaciones de archivos de puntos?

Finalmente, ¿cuál es la relación de la configuración de datos de gconf-editor con estos directorios? ¿Contienen .gnome / .gconf la misma información a la que accede gconf-editor?

Actualizaciones: XDG ha sido señalado como la razón de .cache, .local y .config.

Esta pregunta sobre dconf informa que dconf será el reemplazo de gconf, como se documenta en Gnome.org . Además, João dice que dconf es el

Tecnología GNOME utilizada para almacenar configuraciones de aplicaciones. [...] dconf es el reemplazo de GNOME3 para gconf que no se ha mantenido por algún tiempo. También se espera que dconf traiga mejoras de rendimiento sobre gconf (relevante para el inicio de aplicaciones).

Espero, basado en eso, que haya una ruta de migración algo anárquica desde la configuración de gconf a dconf. Me encantaría escuchar cualquier perspectiva adicional.

belacqua
fuente

Respuestas:

16

.local, .cachey .configson parte de la especificación de directorio base de FreeDesktop . No deberían ser en realidad no modificable, pero en lugar de utilizar las variables de entorno (es decir $XDG_DATA_HOME, $XDG_CACHE_HOMEy $XDG_CONFIG_HOME). Hay envoltorios GLib y Python para la especificación que también pueden ser útiles. Aquí hay un ejemplo en Python:

>>> import xdg.BaseDirectory
>>> print xdg.BaseDirectory.xdg_data_home
/home/andrew/.local/share
>>> print xdg.BaseDirectory.xdg_config_home
/home/andrew/.config
>>> print xdg.BaseDirectory.xdg_cache_home
/home/andrew/.cache

.gnomey de .gnome2hecho están en desuso y no deben usarse. Estos fueron utilizados por el módulo gnome-config de libgnome .

.gconfde hecho contiene la configuración que gconf-editoraccede como archivos xml. Por ejemplo, compare la salida de los siguientes comandos:

gconftool -a /desktop/gnome/applications/browser

cat ~/.gconf/desktop/gnome/applications/browser/%gconf.xml
andrewsomething
fuente
Encontré su respuesta al intentar encontrar cómo encontrar el directorio de configuración desde una aplicación gtk. Para otros programadores que vienen después de mí, hay un contenedor gtk (glib) que usa XDG en Linux y también maneja MS Windows. Información específica aquí: developer.gnome.org/glib/2.30/…
teambob
Estás en lo correcto. Principalmente solo estaba siendo descriptivo en esta respuesta, no brindaba ejemplos prácticos para un programador. Actualizaré la respuesta para agregar un poco más de información para aquellos que se topan con esto.
andrewsomething
5

La redacción adecuada debería ser que .local, .cache, etc. sean parte de la Especificación de Directorio Base XDG de FreeDesktop, http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html .

La especificación del directorio base de XDG es un estándar, seguida de KDE y otros entornos compatibles.

usuario4124
fuente
¿Qué significa ser obediente? ¿Existe un mandato para convertir aplicaciones usando una especificación diferente a la XDG, o de lo contrario dejarlas fuera de la instalación base de Gnome / KDE? Si es así, ¿se cumple el mandato? ¿Las aplicaciones de terceros no conformes están marcadas por alguien, o se supone que la existencia de diferentes convenciones / directorios de configuración es un hecho, es decir, algo que continuará hasta que todos los desarrolladores del ecosistema los abandonen voluntariamente? No tengo KDE instalado, pero Ubuntu / Gnome base para mi sistema 10.10 tiene los directorios XDG que mencionas. ¿Quizás esto es cumplimiento voluntario?
belacqua
2
En su mayor parte, es el cumplimiento voluntario, pero en el pasado se ha debatido sobre hacer del cumplimiento de XDG un "objetivo" para todas las aplicaciones en la instalación predeterminada.
andrewsomething
1
Es un cumplimiento voluntario, pero los usuarios pueden (y muchos lo hacen) completar informes de errores en aplicaciones no conformes que les solicitan que cumplan con el estándar. Limpiar su carpeta $ HOME es uno de los mayores beneficios del estándar XDG, por lo que la presión del usuario suele ser bastante alta en las aplicaciones heredadas.
MestreLion