Instalación de Bugzilla 3.0 en Debian

0
10753

Índice de contenidos

  • 1. Introducción
  • 2. Entorno
  • 3. Instalación
  • 4. Creación de la base de datos en MySQL
  • 5. Configuración de la base de datos y el resto de valores
  • 6. Configuración del Apache
  • 7. Entrando en el Bugzilla 3.0
  • 8. Conclusiones
  • 9. Sobre el autor

1. Introducción

Hace relativamente poco (09 de mayo del 2007) ha salido una nueva versión de Bugzilla.

En el tutorial http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=debianBugzilla ya habíamos visto como instalar esta completa herramienta de gestión de incidencias (errores, modificaciones, mejoras, …) como un paquete de Debian.

En este tutorial lo que vamos a ver es como instalar esta nueva versión en Debian, pero esta vez sin hacerlo como un paquete de Debian, ya que todavía no se encuentra en los repositorios oficiales (esperemos que los chicos de Debian pronto la tengan lista para facilitarnos la vida, pero mientras tanto habrá que hacerlo a manita 😉

Si queréis ver los cambios que han introducido nuevos en esta versión podéis echar un ojo en:http://www.bugzilla.org/releases/3.0/new-features.html, aunque yo destacaría especialmente:

  • Poder dar de alta o modificar incidencias directamente por correo electrónico.
  • Campos personalizados: podemos añadir nuestros propios campos, aunque la recomendación es limitarlos al máximo para no aumentar la complejidad de la aplicación en exceso.
  • Soporte mejorado para UTF-8

También recordaros que Bugzilla nos permite llevar las estimaciones de tiempo para cada incidencia, la fecha límite, y el "milestone" donde se ha planeado que aparecerá cerrada la incidencia. Con todo esto el Bugzilla se puede convertir en una potente herramienta de gestión y planificación de proyectos, donde en una sola herramienta centralizamos toda la información. Por ejemplo, imaginar que lo usamos para dar de alta tanto las historias como las tareas de eXtreme Programming (http://www.extremeprogramming.org).

Nota : ojo porque la funcionalidad de los “milestone” viene desactivada por defecto, la tendremos que activar en el menú de Parameters del administrador, en el apartado Bug Fields, la variableusetargetmilestone, y luego dar de alta los milestones en el producto.

2. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Asus G1 (Core 2 Duo a 2.1 GHz, 2048 MB RAM, 120 GB HD).
  • Sistema Operativo: GNU / Linux, Debian (unstable), Kernel 2.6.21, KDE 3.5
  • Apache 2.2.4-1
  • Bugzilla 3.0

3. Instalación

Descargamos el archivo de http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.0.tar.gz

Lo primero que hacemos es descomprimir el archivo que nos hemos descargado, por ejemplo en /var/www (uso este directorio porque es donde se suelen poner las páginas del apache):

# cd /var/www
# tar -xzf <ruta al archivo>/bugzilla-3.0.tar.gz

Ahora entramos en el directorio que se nos ha creado con la descompresión, y ejecutamos el script:

# cd bugzilla-3.0
# ./checksetup.pl

Este script comprobará si están instalados los módulos Perl necesarios para ejecutar el Bugzilla. Algunos son obligatorios y otros son opcionales. El script nos dirá todos los módulos que nos están instalados y nos propondrá que los instalemos a través del CPAN (es un repositorio remoto de módulos de Perl, de forma que nuestro sistema se conectará a internet para bajarse esos módulos).

NOTA: ojo si queremos usar el CPAN para hacer la instalación de los módulos, el propio script nos dirá los comandos que tenemos que ejecutar, pero recordar que hay que ejecutarlos como root.

Yo, en vez de usar el CPAN he usado directamente el repositorio de Debian para hacer la instalación de estos módulos. La lista de los módulos instalados es la siguiente (están los módulos necesarios por el Bugzilla y las dependencias de estos):

  • libapache-dbi-perl (1.05-1)
  • libapache2-mod-perl2 (2.0.2-2.4)
  • libappconfig-perl (1.56-2)
  • libchart-perl (2.4.1-4)
  • libclass-accessor-perl (0.30-1)
  • libcompress-zlib-perl (1.42-2)
  • libconvert-asn1-perl (0.20-1)
  • libdbd-mysql-perl
  • libdevel-symdump-perl (2.03-3)
  • libemail-abstract-perl (2.132-1)
  • libemail-address-perl (1.888-1)
  • libemail-date-perl (1.102-1)
  • libemail-messageid-perl (1.351-1)
  • libemail-mime-contenttype-perl (1.014-1)
  • libemail-mime-encodings-perl (1.311-1)
  • libemail-mime-modifier-perl (1.441-1)
  • libemail-mime-perl (1.857-1)
  • libemail-send-perl (2.185-1)
  • libemail-simple-creator-perl (1.420-1)
  • libemail-simple-perl (1.999-1)
  • libfcgi-perl (0.67-2)
  • libfilter-perl (1.31-1)
  • libgd-gd2-perl (1:2.34-1)
  • libgd-graph-perl (1.43.08-2.1)
  • libgd-graph3d-perl (0.63-3)
  • libgd-text-perl (0.86-3.1)
  • libgd1-xpm (1.8.4.debian-1)
  • libgd2-xpm (2.0.34-1)
  • libhtml-scrubber-perl (0.08-4)
  • libio-all-perl (0.33-3.1)
  • libio-socket-ssl-perl (1.02-1)
  • libmime-lite-perl (3.01-8)
  • libmime-types-perl (1.19-1)
  • libmodule-pluggable-perl (3.6-1)
  • libnet-ldap-perl (1:0.33-2)
  • libnet-ssleay-perl (1.30-1)
  • libossp-uuid-perl (1.5.1-1)
  • libossp-uuid15 (1.5.1-1)
  • libreturn-value-perl (1.302-1)
  • libspiffy-perl (0.29-1)
  • libsoap-lite-perl (0.69-1)
  • libtemplate-perl (2.19-1)
  • libtemplate-plugin-gd-perl (2.66-1)
  • libtime-piece-perl (1.11-2)
  • perlmagick (7:6.2.4.5.dfsg1-1)

Aun así hay dos módulos que no los he podido instalar, ni con el repositorio de Debian ni con el CPAN:

  • Email-Reply
  • Email-MIME-Attachment-Stripper

Estos dos módulos son necesarios para procesar los correos de entrada. En el repositorio de Debian no se encuentran y al intentar instalarlos con el CPNA, fallan los test y no se instalan. Se podría intentar “forzar” su instalación con el CPAN, pero por ahora he preferido dejarlos sin instalar, ya que estos son dos módulos opcionales (si alguien los a podido instalar, por favor que me mande un correo diciendo como, y lo añado al tutorial 😉

Ojo, tenéis que estar seguros de que habéis instalados los módulos para el acceso a la base de datos, o bien MySQL o bien PostgreSQL. En mi caso he elegido MySLQ (libdbd-mysql-perl).

4. Creación de la base de datos en MySQL

Creamos la base de datos y el usuario que hemos configurado en el paso anterior. Lo haremos con el “MySQL Administrator”. Pinchamos sobre Catalogs y en la zona Schemata, sobre el fondo blanco, hacemos botón derechoCreate Schema:

Damos un nombre al esquema (por ejemplo: bugzilla), y damos a OK:

Ahora pinchamos sobre User Administration y en la zona User Accounts pulsamos botón derecho sobre la zona blanca y elegimos New User:

Ponemos los datos del usuario: nombre y clave (por ejemplo bugzilla / bugzilla). Y pulsamos sobre Apply Changes (veremos como en la zona User Accounts cambia new_user por bugzilla):

Ahora mismo se puede usar el usuario bugzilla para conectar desde cualquier host (@ %), por seguridad vamos a limitar las conexiones para que sólo se puedan hacer desde localhost (es decir, el Bugzilla y el MySQL tendrán que estar en la misma máquina). Para ello pulsamos botón derecho sobre el usuario bugzilla y seleccionamos Add Host y seleccionamoslocalhost. Luego pulsamos botón derecho sobre @ % y elegimos Remove Host.

Ahora vamos a darle privilegios a este usuario sobre el esquema bugzilla que hemos creado anteriormente. Seguramente se puedan afinar más los permisos, pero por ahora, para no liarnos más, vamos a darle al usuario bugzilla todos los permisos sobre el esquema bugzilla. Para ello, estando seleccionado el usuario bugzilla y el host localhost, pulsamos sobre la pestaña Schema Privileges, en la zona de Schema seleccionamos bugzilla, en la zona de Available Privilegesmarcamos todos los privilegios:

Y pulsamos sobre la flecha que apunta a la izquierda:

Nuevamente pulsamos sobre Apply Changes.

5. Configuración de la base de datos y el resto de valores

Ahora vamos a configurar la base de datos. Para ello volvemos a la consola y modificamos en el fichero localconfig los siguientes valores:

  • $webservergroup = 'www-data'; – Le ponemos www-data porque es el grupo con el que se ejecuta nuestro apache2.
  • $db_name = 'bugzilla'; – nombre de la base de datos en el MySQL (el nombre del esquema que hemos creado en el apartado anterior).
  • $db_user = 'bugzilla'; – nombre del usuario para acceder a la base de datos (lo hemos creado en el apartado anterior).
  • $db_pass = 'bugzilla'; – clave del usuario para acceder a la base de datos (lo hemos creado en el apartado anterior).

Ahora volvemos a ejecutar el script

# ./checksetup.pl

pero esta vez conviene que lo hagamos con el usuario root o con un usuario que esté en grupo que hemos configurado en $webservergroup. De lo contrario los permisos de creación pueden quedar mal establecidos y luego tendremos problemas para acceder desde el apache.

Es en este momento, al ejecutar el script, cuando se crean las tablas en el esquema que hemos creado en el apartado anterior.

Al ejecutar el script también nos pedirá la dirección de correo del administrador de Bugzilla. Le ponemos la que queramos. Esta será la cuenta donde el Bugzilla mandará los correos al administrador, y también será lo que habrá que poner para autenticarnos en el Bugzilla como administradores.

Nos pide el nombre real del administrador.

Y nos pedirá la clave del administrador (por supuesto con confirmación).

El script debería terminar correctamente, y nos sugiere que, cuando estemos autenticados como administradores, visitemos la página de “Parameters” en el pie del “home” para ajustar las preferencias de nuestra instalación de Bugzilla.

6. Configuración del Apache

Ya tenemos un Apache 2 instalado como paquete de Debian. Ahora vamos a ver como configurarlo para que apunte al directorio del Bugzilla.

Para esto tenemos dos posibilidades, usar mod_cgi o mod_perl. mod_cgi es la forma tradicional, mientras que mod_perl es un nuevo sistema que da mejor rendimiento para uso masivo del Bugzilla. Este último modo tiene el inconveniente de que consume bastante memoria, y que todavía no es demasiado estable, así que si no esperamos un uso realmente masivo del Bugzilla recomendamos seguir usando mod_cgi.

En el caso de usar mod_cgi, tendremos que añadir el fichero /etc/apache2/sites-available/bugzilla-3.0, con el contenido:

<Directory /var/www/bugzilla-3.0>
    AddHandler cgi-script .cgi
    Options +Indexes +ExecCGI
    DirectoryIndex index.cgi
    AllowOverride Limit
</Directory>

Ahora hacemos un enlace a este fichero que acabamos de crear

# ln -s /etc/apache2/sites-available/bugzilla-3.0 /etc/apache2/sites-enabled/010-bugzilla-3.0

Ya sólo nos queda parar y arrancar el apache para asegurarnos de que coge los cambios:

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

7. Entrando en el Bugzilla 3.0

En nuestro navegador ponemos la dirección http://localhost/bugzilla-3.0/. Si todo ha ido correctamente deberíamos ver la siguiente pantalla:

Enhorabuena !!!

Ahora, en esta pantalla nos autenticamos con la cuenta de correo del administrador y la clave que habíamos configurado en el apartado 5. Nos aparecerá la siguiente pantalla:

Esta pantalla nos apareceré la primera vez porque el Bugzilla se da cuenta de que faltan algunas cosas por configurar. Le hacemos caso y configuramos:

  • maintainer: la dirección de correo electrónico de la persona que será avisada si algo va mal en la instalación del Bugzilla.
  • urlbase: muy importante. Es la URL que apunta a la instalación del Bugzilla. Es lo que se usará en los correos. Ojo debe empezar por “http://” y debe acabar en “/”. Una vez fijemos este valor, la pantalla anterior dejará de aparecernos.

Una vez hemos configurado las propiedades que nos interesan, podemos probar a salir (la opción de Log out está en el menú de arriba) y volver a entrar. Esta vez ya no nos aparecer la pantalla anterior, sino esta otra:

Ya estamos operativos y podemos empezar a crear usuarios, nuestra estructura de proyectos, … estas opciones son muy similares a las versiones anteriores, así que podéis encontrar algo más de información al respecto en el tutorial:http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=debianBugzilla

8. Conclusiones

Existen múltiples herramientas de gestión de incidencias como el Bugzilla (Trac, Jira, …). Lo que está claro es que deberían ser pieza indispensable en cualquier desarrollo. Desde Autentia (www.autentia.com) os recomendamos su uso, más cuando cada día se integran mejor con nuestras herramientas de desarrollo, como por ejemplo con el Eclipse a través del proyecto Mylyn (http://www.eclipse.org/mylyn/).

9. Sobre el autor

Alejandro Pérez García, Ingeniero en Informática (especialidad de Ingeniería del Software)

Socio fundador de Autentia (Formación, Consultoría, Desarrollo de sistemas transaccionales)

mailto:alejandropg@autentia.com

Autentia Real Business Solutions S.L. – “Soporte a Desarrollo”

http://www.autentia.com

Alejandro es socio fundador de Autentia y nuestro experto en Java EE, Linux y optimización de aplicaciones empresariales. Ingeniero en Informática y Certified ScrumMaster. Seguir @alejandropgarci Si te gusta lo que ves, puedes contratarle para darte ayuda con soporte experto, impartir cursos presenciales en tu empresa o para que realicemos tus proyectos como factoría (Madrid). Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad