Delirios de un Informático

Cómo instalar Bugzilla en Debian Squeeze

Bugzilla es uno de los más veteranos y completos sistemas de seguimiento de errores. Está perdiendo fuerza frente a proyectos como Trac, Redmine o soluciones en la nube como Jira, pero sigue teniendo una cantidad de opciones y una integración con IDEs que ningún otro software tiene, y por eso lo sigo usando para mis proyectos personales.

Está desarrollado en Perl por lo que se necesitará un servidor web con soporte para CGI, así como un servidor de bases de datos (MySQL, PostgreSQL u Oracle) y sus correspondientes librerías de acceso de Perl (para MySQL basta instalar mysql-server y libdbd-mysql-perl). También es necesario instalar unos cuantos módulos Perl, pero personalmente odio llenar el sistema de módulos CPAN, PEAR y similares cuando es posible instalarlos únicamente para el usuario que los necesita. Esto también evita posibles problemas si se actualizan módulos ya instalados con versiones específicas que necesitan otras aplicaciones.

Asumo Apache, la raíz del servidor web en /var/www y www-data como usuario:

su www-data
cd /var/www
wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.0.2.tar.gz
tar xzvf bugzilla-4.0.2.tar.gz
mv bugzilla-4.0.2 bugzilla && cd bugzilla
./install-module.pl --all
./checksetup.pl
vim localconfig
./checksetup.pl

El comando install-module.pl instalará todos los módulos necesarios en el subdirectorio .cpan de la carpeta del usuario (¡¡159MB!!). El penúltimo comando edita la configuración, donde se deberán añadir los datos de acceso a la base de datos, así como modificar el elemento $webservergroup para que coincida con el usuario que ejecuta el servidor web. El último comando es el que crea las tablas en la base de datos, y en caso de haber algún error lo mostrará claramente (generalmente es la falta de un módulo).

Por último, es necesario añadir al .htaccess unas líneas para que el servidor web interprete los archivos Perl, pero sólo si no se tiene ya configurado para eso:

Options +ExecCGI -MultiViews
AddHandler cgi-script .cgi

Estas instrucciones sirven para cualquiera de las versiones 4.x (y seguramente para la rama 3.x), y pronto saldrá la versión 4.2 con una rama denominada Pretty en la que se implementará una nueva interfaz.

Cómo instalar Tracks 2.0 con SQLite en Debian Squeeze

Tracks es un sencillo pero potente software de gestión de tareas que sigue la metodología GTD. Está programado en Ruby y es de código abierto. La instalación resulta un poco problemática y he querido documentar un poco el proceso, ya que las guías que he encontrado están hechas para la anterior versión (la 1.7, de inicios del 2009).

El primer paso es asegurarse de que Apache está preparado. Es necesario instalar y habilitar el módulo libapache2-mod-fastcgi y activar AllowOverride All en la configuración para que no sea necesario añadir ningún vhost o configuración específica para Apache, haciendo uso únicamente de .htaccess.

Después hay que descargar y descomprimir Tracks en el directorio raiz del servidor (asumo /var/www):

wget https://github.com/TracksApp/tracks/tarball/v2.0
tar xzvf v2.0 && rm -f v2.0
mv TracksApp-tracks-22a0c94 tracks
cd tracks
cp db/tracks-20-blank.sqlite3.db db/tracks.db
cp config/database.yml.tmpl config/database.yml
cp config/site.yml.tmpl config/site.yml

Estos dos últimos archivos contienen la configuración. Para usar SQLite hay que indicar en el campo database la ruta completa al archivo .db que se acaba de copiar, y después personalizar los campos que se desee en site.yml.

Después es necesario instalar los paquetes de Ruby, sus dependencias y las gemas. Es necesario instalar varios paquetes dev pero que se pueden desinstalar una vez se hayan instalado las gemas:

sudo apt-get install ruby libruby rubygems rake
sudo apt-get install libxslt1-dev libxml2-dev libsqlite3-dev libfcgi-dev ruby1.8-dev
gem install RedCloth sqlite3 fcgi
gem install sanitize -v 1.2.1
sudo apt-get remove --purge libxslt1-dev libxml2-dev libsqlite3-dev libfcgi-dev ruby1.8-dev
sudo apt-get autoremove --purge
script/server -e production

Este último comando inicia el servidor WEBrick que permite comprobar si todas las dependencias están correctamente instaladas. Si todo va bien, debería aparecer algo similar a esto:

[2011-08-24 07:26:04] INFO  WEBrick 1.3.1
[2011-08-23 04:26:04] INFO  ruby 1.8.7 (2011-06-30) [x86_64-linux]
[2011-08-23 04:26:04] INFO  WEBrick::HTTPServer#start: pid=10333 port=3000

En este punto, tenemos Tracks funcionando en el puerto 3000 se podrá acceder desde a http://localhost:3000 pero también estará accesible desde http://localhost/tracks/public.

Wacom Bamboo con Xorg 7.5

En mi anterior post comentaba que los botones de mi Wacom Bamboo volvieron a funcionar con la actualización de Xorg a la versión 7.5, que habían dejado de funcionar desde que se incluyó el soporte hal en los controladores Wacom (por lo que no es necesaria su configuración en el archivo xorg.conf). El problema es que la configuración hace que las pulsaciones no sean detectadas por xbindkeys, el software que utilizo par mapear las teclas a comandos. Para solucionarlo, deben reconfigurarse los parámetros por defecto con el comando xsetwacom.

En la actualización el comando xsetwacom viene integrado en el paquete xserver-xorg-input-wacom por lo que ya no es necesario el paquete wacom-tools. Si ejecutamos xsetwacom --list obtendremos algo como:

"Wacom Bamboo"   STYLUS    
"Wacom Bamboo" eraser ERASER    
"Wacom Bamboo" cursor CURSOR    
"Wacom Bamboo" pad PAD

La última línea indica el texto que ha de pasársele a xsetwacom para configurar los botones, excluyendo “PAD“. Con esto, sólo queda fijar combinaciones de teclas para los 4 botones que pueden ser Control + Shift + F1-F4, ya que son combinaciones no usadas por defecto y que pueden ejecutarse fácilmente desde el teclado. Los comandos para reconfigurar los botones serían:

xsetwacom set '"Wacom Bamboo" pad' "Button1" "core key ctrl shift f1"
xsetwacom set '"Wacom Bamboo" pad' "Button2" "core key ctrl shift f2"
xsetwacom set '"Wacom Bamboo" pad' "Button3" "core key ctrl shift f3"
xsetwacom set '"Wacom Bamboo" pad' "Button4" "core key ctrl shift f4"

Estos comandos pueden incluirse en cualquier archivo de inicio del usuario para que se auto-configure todo al arrancar el entorno gráfico, y las pulsaciónes se detectarán sin problemas con xbindkeys.

Problemas de conectividad de Java en Debian

Desde hace unos días las aplicaciones Java fallaban al conectarse a internet, mostrando un Network is unreachable al intentar obtener cualquier dato de internet. Tras pelearme con Java y sus preferencias una y otra vez, acabé encontrando este comentario que indica que se trata de la configuración del sistema. Si un cat /proc/sys/net/ipv6/bindv6only devuelve 1 ahí está el problema: las conexiones Java con IPV4 no funcionarán. Para solucionarlo, basta ejecutar este comando:

sudo sysctl net.ipv6.bindv6only=0

Con este ajuste, Java podrá volver a conectarse a internet.

Sencillo editor de paquetes Debian

Más de una vez he necesitado modificar un paquete .deb debido a que las dependencias no son las correctas o la versión se detecta mal y se fuerza su actualización. Es el caso de mail-notification-evolution, paquete al que hay que modificarle la dependencia con libcamel para poder hacerlo funcionar con Evolution 2.28. Como los paquetes son simplemente archivos con una cierta informacion y comprimidos, es posible modificarlos utilizando File Roller o similares, pero es una tarea más incómoda.

El script simplemente descomprime el paquete y permite editar el archivo de texto que define la versión y las dependencias. Tras salir del editor actualiza el archivo guardado y borra los archivos temporales:

#!/bin/bash
dpkg -e "$1"
cd DEBIAN/
vim control
tar czvf control.tar.gz *
mv control.tar.gz ../
cd ..
ar r "$1" control.tar.gz
rm -rf DEBIAN
rm control.tar.gz

Mientras se edita el archivo, es posible acceder a la carpeta DEBIAN creada en el directorio de trabajo y modificar los archivos del paquete data.tar.gz, que es donde está todos los archivos que se instalarán con el paquete.