Paquetes debian con gconf-defaults y gconf-mandatory

Trabajando con la configuración por defecto para el escritorio de las Canaimitas y configurando las restricciones de algunas opciones que no se quiere que sean modificada por los niños, me topé con el reto de crear un paquete .deb que fuese capaz de manejar los valores por defecto para el GConf (Sistema de configuración de gnome) y también capaz de configurar valores obligatorios para el mismo, es decir que no pudiesen ser modificados o borrados.

Después de investigar sobre esto voy a pasar a hacer la respectiva difusión del conocimiento recién obtenido.

Es importante acotar que para la creación de paquetes que explico a continuación hago uso del ‘debhelper’.

GConf

No voy a profundizar mucho en esta parte, pero creo es necesario dar una pequeña introducción del GConf.

Como ya dije el gconf es un sistema de configuración para gnome y sus aplicaciones. El formato que utiliza para hacer referencia a algo está compuesto de claves y valores.

Claves Gconf

Se refiere a un identificador específico para cada valor y se expresa de manera muy similar a un sistema de archivos linux, ejemplo:

/desktop/gnome/background/draw_background

La clave anterior almacena un valor booleano que indica si se debe mostrar una imagen en el escritorio o sólo un color de fondo. Es decir, activa o desactiva el fondo de escritorio.

Valores Gconf

No es necesario explicarlo mucho, son los valores de cada clave y permiten modificar el comportamiento del sistema. Los valores permitidos son:

  • Enteros
  • Booleanos
  • Strings
  • Listas

Ejemplo de los valores indicados arriba respectivamente:

25
true
"/usr/share/images/desktop-base/desktop-background"
[top_panel, bottom_panel]

Para modificar los valores del gconf se utiliza generalmente alguna de estas aplicaciones:

  • gconftool-2 (Para hacerlo por consola)
  • gconf-editor (Para hacerlo en modo gráfico)

Pero en este caso no me interesaba utilizar dichas herramientas, sino que fueran instaladas dichas configuraciones/personalizaciones de manera automática a través de un paquete .deb, metodo el cual esbozo a continuación.

Valores por defecto para GConf (archivo debian/gconf-defaults)

Los valores por defecto son aquellos que tendrá todo usuario y el cual tendrá la posibilidad de cambiarlos cuando desee por los valores que desee.

Para configurar los valores por defecto de las claves, una vez configurado nuestro paquete para ser ‘debianizado’, simplemente, dentro de la carpeta debian/ de nuestro código fuente creamos el archivo llamado:

NOMBRE-DEL-PAQUETE.gconf-defaults

Dónde NOMBRE-DEL-PAQUETE debe ser idéntico al indicado en el archivo debian/control.

A continuación indicamos las claves y valores que deseamos tengan un valor específico por defecto para los usuarios. El formato para hacer llenar el archivo es la clave seguida de espacio o tabulador luego el valor, como el siguiente ejemplo:

/apps/gnome-screensaver/idle_activation_enabled true
/apps/gnome-screensaver/idle_delay 5
/apps/gnome-screensaver/lock_enabled false

En el ejemplo anterior indicamos que por defecto:

  • el protector de pantallas se activa cuando el sistema este inactivo,
  • que el sistema se considera inactivo luego de 5 minutos sin uso
  • y que no bloquee la pantalla al activar el protector de pantalla.

Una vez terminado podemos empaquetar nuestra aplicación y debhelper se encargará del resto.

Valores obligatorios para GConf (archivo debian/gconf-mandatory)

Si queremos que los usuarios no puedan modificar de ningún modo algun(os) valores del gconf, el archivo gconf-mandatory es el que necesitamos.

Las reglas a seguir con este archivo son idénticas al gconf-defaults definidas arriba sólo variando el nombre, es decir, el archivo debe nombrarse de esta manera:

NOMBRE-DEL-PAQUETE.gconf-mandatory

Como ya sabemos, NOMBRE-DEL-PAQUETE debe ser idéntico al nombre del paquete indicado en el archivo debian/control.

Comentarios

Los archivos gconf-defaults y gconf-mandatory aceptan comentarios, los cuales están conformado por una linea que comienza por ‘#’ seguido del comentario. Ejemplo:

##Configuracion del Salvapantallas##
# Activar cuando este inactivo
/apps/gnome-screensaver/idle_activation_enabled true
# Tiempo de espera para activar
/apps/gnome-screensaver/idle_delay 5
# No pedir contraseña para salir del salvapantalla
/apps/gnome-screensaver/lock_enabled false

Notas finales

Una de las características que en mi caso es muy útil es que con ese archivo simple de llenar, se hacen automáticamente las configuraciones indicadas al instalar el paquete y desaparecen cuando se desinstala, sin tocar el comando gconftool-2 o el gconf-editor.

Paquetes debian con gconf-defaults y gconf-mandatory

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s