Editar la configuración de GNOME desde la consola

sábado, noviembre 29, 2008

El escritorio GNOME y muchas aplicaciones utilizan GConf para almacenar las preferencias del usuario y los datos de configuración del sistema en un repositorio central que almacena los valores en forma de pares clave-valor, simplificando la administración de la configuración para los usuarios y administradores del sistema.

GNOME viene con un editor de preferencias llamado GConf Editor. Puede invocarse desde la consola ejecutando el comando:

$ gconf-editor

Desde allí podemos cambiar la mayoría de las preferencia del sistema.

Sin embargo, cuando necesitamos cambiar las preferencias de forma automática (digamos desde un script o algún programa) el editor NO será de gran ayuda. Para ello contamos con la herramienta gconftool. Usarla es realmente simple; mostraré con un ejemplo como hacerlo.

Supongamos que deseamos mostrar en nuestro escritorio el icono de la Papelera de Reciclaje. Desde el GConf Editor podemos ver que la ruta donde se encuentra esta preferencia es /app/nautilus/desktop/ y la clave es trash_icon_visible. Obviamente si la clave está en true se mostrará el icono de la papelera y si está en false no se mostrará.

El comando sería tan sencillo como:

$ gconftool -s --type=bool /apps/nautilus/desktop/trash_icon_visible true
donde:
  • -s indica que la variable será establecida (del inglés set)

  • --type indica el tipo de clave a editar. Hasta ahora he usado string para el texto y bool para los valores booleanos (verdaderos y falsos)

  • Luego se especifica la ruta completa de la clave, en este caso /apps/nautilus/desktop/trash_icon_visible

  • Y por último el valor que le queremos asignar a la clave, en este caso true.

Podemos usar el comando donde y cuando sea necesario para ajustar nuestras preferencias al gusto.

Agregar imágenes de fondo al GRUB

A continuación explicaré cómo agregar imágenes de fondo al GRUB en Debian Lenny.

Instalamos el paquete grub-splashimages:
# aptitude install grub-splashimages
Después de esto quedarán instaladas algunas imágenes de fondo en la ruta /boot/grub/splashimages.

Para colocar una de ellas de fondo basta con ejecutar el siguiente comando:
# ln -s /boot/grub/splashimages/nombre_imagen.xpm.gz splash.xpm.gz
donde nombre_imagen.xpm.gz es el nombre del archivo que queremos colocar como fondo.

Reiniciamos y veremos nuestra flamante imagen de fondo :)

Canaima la distribución GNU/Linux Venezolana

jueves, noviembre 27, 2008


Canaima es una distribución GNU/Linux Venezolana basada en Debian que está siendo desarrollada por el CNTI en conjunto con la comunidad de software libre de Venezuela.

Surge con la finalidad de cubrir las necesidades ofimáticas de los usuarios de la Administración Pública Nacional (APN) y para dar cumplimiento al decreto presidencial Nro. 3.390 sobre el uso de Tecnologías Libres en todos los entes gubernamentales.

Entre las principales características principales de Canaima tenemos:

  • Está desarrollada completamente bajo Software Libre.

  • No está limitada al uso en la APN, sino que puede ser usado por cualquier persona.

  • Es estable y segura, pues está basada en Debian, la cual pasa por una serie de procesos y pruebas rigurosas de calidad.

  • Realizada en Venezuela por talento nacional.

  • Posee una serie de herramientas (ofimáticas, diseño gráfico, planificación de proyectos, bases de datos, gestores de correo electrónico, aplicaciones para llamadas sobre VoIP, entre otros) que hacen de Canaima una distribución realmente completa "Out of the box".

  • Permite la estandarización de los procesos técnicos, de soporte y capacitación a nivel de Tecnologías de la Información

  • Promueve la industria nacional de Software Libre

  • Estimula el acercamiento de los usuarios al Software Libre para su uso personal

  • Brinda soberanía e independencia tecnológica


Hasta ahora Canaima anda sobre ruedas, la gente del CNTI está estimulando la participación de la comunidad en el desarrollo y crecimiento de la misma. La versión actual es la 2.0, se encuentra en perfecto estado de usabilidad y ya se está trabajando en la siguiente publicación.

Puede obtener el DVD de Canaima a través de cualquiera de estos medios:

* Canaima v2.0 i386 (ISO)
* Canaima v2.0 i386 (.jigdo)
* Canaima v2.0 i386 (.torrent)

Estaré al tanto de las novedades al respecto para hacerlas saber por este medio

Cambiar orden de arranque en GRUB2

miércoles, noviembre 26, 2008

GRUB (GRand Unified Bootloader) es un gestor de arranque múltiple que se usa para iniciar dos o más sistemas operativos instalados en un mismo equipo. Es el gestor de arranque usado por la mayoría de las distribuciones GNU/Linux, sin embargo su desarrollo ya no esta activo; solamente se corrigen errores mientras GRUB2 se estabiliza.

GRUB2 es un gestor de arranque derivado de PUPA y constituye la evolución del famoso GRUB. Ha sido reescrito desde cero con la finalidad de corregir todos los errores de GRUB e implementar nuevos esquemas de modularidad y portabilidad.

Los que venimos de GRUB estamos acostumbrados a cambiar todas las opciones de arranque desde el archivo /boot/grub/menu.lst, sin embargo en GRUB2 este archivo no se utiliza. Para cambiar las opciones de arranque (especificamente el orden de arranque) en GRUB2 debemos editar el archivo /etc/default/grub. En la línea:

GRUB_DEFAULT=0
Colocaremos la opción que queremos por defecto al momento de arrancar (0 para la primera opción, 1 para la segunda y así sucesivamente).

Luego ejecutamos (como super usuario):

# update-grub
Ese último comando regenera todos los archivos de configuración del GRUB2 para que los cambios surtan efecto.

Solo queda reiniciar y verificar que todo está en el orden que deseamos :)

Clonar un CD/DVD desde la consola

martes, noviembre 25, 2008

Si tenemos una sola unidad óptica (CD-RW o DVD-RW) y queremos duplicar un disco desde la consola entonces la siguiente receta nos será de mucha utilidad.

Primero colocamos el CD/DVD original (el que se desea duplicar) en la unidad para crear la réplica exacta en nuestro disco duro (es decir una imagen). Para ello necesitamos saber en que dispositivo se encuentra el CD-RW/DVD-RW, eso lo obtenemos con el comando ls:

$ ls /dev/cd*
/dev/cdrom /dev/cdrw

En nuestro caso se encuentra bajo el dispositivo /dev/cdrw.

Ahora con el comando dd realizamos la imagen:

$ dd if=/dev/cdrw of=nombre_imagen.iso
El argumento if nos indica el archivo (o dispositivo) de entrada, mientras que el of se refiere al archivo de salida, en nuestro caso el archivo de imagen .iso.

Luego de unos minutos tendremos un archivo idéntico al CD/DVD (con los mismos pelos y señales) en nuestro disco duro. Ahora para grabarlo en otro disco usaremos el comando wodim. Si no lo tenemos instalado lo hacemos con aptitude:

# aptitude install wodim

Para usar el wodim debemos especificar el nombre del dispositivo grabador. Por alguna extraña razón wodim no emplea la misma terminología para los dispositivos que dd, así que es necesario ejecutar el comando wodim para saber en que dispositivo grabaremos.

$ wodim --devices
wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
0 dev='/dev/hdb' rwrw-- : 'TSSTcorp' 'CD/DVDW SH-S182F'
-------------------------------------------------------------------------

Como podemos observar wodim nos arroja que el dispositivo es el /dev/hdb. Con esa información procedemos a grabar. Insertamos entonces un disco en blanco en la unidad y ejecutamos la siguiente orden:

$ wodim -v -fs=128M -eject -dev=/dev/hdb nombre_imagen.iso

Al finalizar podremos disfrutar de una copia exacta de nuestro CD/DVD

Desordenar arreglos en Python

lunes, noviembre 24, 2008

Hace algún tiempo publiqué un pequeño algoritmo para desordenar arreglos en C++. Esta vez escribiré el mismo algoritmo pero en Python; veamos:

import random

arreglo = []

for i in range(44):
arreglo.append(i)

# Esta línea realiza todo el trabajo sucio de desordenar el arreglo y lo
# guarda en la misma variable :D
random.shuffle(arreglo)

Con eso ya tenemos nuestro arreglo desordenado... A lo Python! xD

Ejecutar comandos del shell en Python y capturar su salida

miércoles, noviembre 19, 2008

A veces cuando escribimos un programa necesitamos ejecutar algún comando en la consola y tomar su salida para realizar una acción o tomar una decisión.

La mayoría de los lenguajes de programación incorporan funciones que nos permiten ejecutar órdenes en la consola del sistema operativo y Python no es la excepción. Además lo hace realmente fácil ;)

Para ello haremos uso del módulo subprocess, que a diferencia del os.system() o del os.popen() es mucho más intuitivo y sencillo de usar.

El módulo define una función conveniente llamada call que ejecuta un comando y espera hasta que termine su ejecución. Recibe una gran cantidad de parámetros, pero solo nos interesan el comando a ejecutar, el descriptor de archivo de la salida estándar (stdout) y el descriptor de archivo de la salida de errores (stderr). Estos descriptores son importantes porque allí es donde se almacenará la salida del programa (lo que normalmente imprime en la consola) y los mensajes de error (que también se imprimen en la consola).

El comando debe ser una lista de cádenas de caracteres, el primer elemento a ejecutar es el comando y los elementos siguientes son cada uno de los argumentos que recibe dicho comando. Los descriptores de archivos son eso... vulgares descriptores de archivos :D

Pero es suficiente de preámbulos... Show me the code!

# importamos el módulo
import subprocess

# Creamos los descriptores de archivos como dos vulgares archivos
# con permisos de escritura llamados 'archivo_out' y 'archivo_err'
outfd = open('archivo_out', 'w+')
errfd = open('archivo_err', 'w+')

# Supongamos que queremos ejecutamos el comando: ls -l -a
subprocess.call(['ls', '-l', '-a'], stdout=outfd, stderr=errfd)

# Cerramos los archivos para que se escriban los cambios y se liberen
# los buffers de I/O
outfd.close()
errfd.close()

# Ahora leemos todo lo que tengan los archivos y guardamos en la variable
# output la salida estándar y en err la salida de error.
fd = open('archivo_out', 'r')
output = fd.read()
fd.close()

fd = open('archivo_err', 'r')
err = fd.read()
fd.close()

# Por último mostramos lo que tienen las variables
print 'stdout: %s\n' % output
print 'stderr: %s' % err

Con eso ya podemos ejecutar cualquier comando en la shell usando Python, esperar su salida y además guardarla en una variable para procesarla más adelante

Instalar Enlightenment E17 en Debian Lenny

domingo, noviembre 09, 2008


Para aquellos que no lo conocen, Enlightenment o simplemente E es un gestor de ventanas para Unix y GNU/Linux muy atractivo y con efectos visuales alucinantes.

La DR17 es la versión en desarrollo de Enlightenment pero ofrece una gran estabilidad y una buena integración con el entorno, todo con una arquitectura gráficamente espectacular y flexible. Para más detalles de Enlightenment visita la página oficial

Bueno, ahora a lo que vinimos; en este post explicaré como instalar la versión DR17 (E17) en Debian Lenny.

Primero agregamos los repositorios de desarrollo de Enlightenment a nuestro /etc/apt/sources.list:
deb http://debian.alphagemini.org/ unstable main
deb-src http://debian.alphagemini.org/ unstable main


Luego agregamos la clave gpg ejecutando estas instrucciones en la consola:
# gpg --keyserver pgp.rediris.es --recv-keys 7E5D69A103CA4243
# gpg --armor --export 7E5D69A103CA4243 | apt-key add -


Hacemos una actualización de la lista de paquetes:
# aptitude update

Y por último instalamos el gestor de ventanas:
# aptitude install e17

El resultado está a la vista, las imágenes corresponden a los distintos temas que probé en mi escritorio.









Seguiré jugando con el E17 y postearé cualquier otra novedad que consiga

Instalar impresora HP3745 en Debian Lenny

martes, noviembre 04, 2008

El procedimiento descrito a continuación se realizó para el modelo de impresora HP Deskjet 3745, sin embargo es idéntico para otra gama amplia de modelos HP.

Lo primero que debemos hacer es asegurarnos que nuestro sistema esté al día:
# aptitude update
# aptitude safe-upgrade


Posteriormente instalamos los paquetes necesarios para la puesta a punto de la impresora.
# aptitude install hplip hpijs foomatic-db-hpijs

Ahora basta con abrir una nueva ventana/pestaña del navegador y cargar la URL http://localhost:631. Inmediatamente le aparecerá la página de bienvenida del sistema CUPS


Hacemos click en Añadir impresora y veremos algo como:


Llenamos los campos con la información requerida y hacemos click en Siguiente. Ahora nos sale una pantalla donde es necesario seleccionar el tipo de conexión con la impresora.


En este caso la impresora está conectada por cable USB, así que tomaremos la opción que dice USB y que además contiene la palabra HPLIP y el serial de la misma.

Por último el CUPS nos pregunta sobre el modelo de la impresora


Seleccionamos el modelo de nuestra impresora y hacemos click en Añadir impresora y con eso tenemos la impresora instalada y funcionando a la perfección.



Luego de eso solo queda probar la impresión con nuestro programa favorito o llamar desde la consola al toolbox de HP con el comando:
$ hp-toolbox