• Suscríbete al Feed Espacio Linux
  • Suscríbete al Feed por Email
  • Sigue a Espacio Linux en Identi.ca
  • Espacio Linux también en Facebook
  • Sigue a Espacio Linux en Twitter
  • Sigue a Espacio Linux en Google +
          Iniciar sesión | Registrarse

Hacer paquetes tgz para Slackware

En este pequeño documento vamos a aprender a crear un paquete tgz para Slackware a partir de un programa ya hecho, y del cual disponemos de su código fuente.
Para crear paquetes tgz lo primero de que debemos disponer es de las herramientas de desarrollo, es decir los kernel-headers, el compilador gcc y demás.
Para hacer el proceso lo más didáctico posible vamos a seguirlo creando nuestro primer paquete, en este caso utilizaremos el detector de intrusos Snort.

Bajamos de su página Web (http://www.snort.org/) el archivo snort-2.4.3.tar.gz.

Procedemos a descomprimirlo:

# tar zxvf snort-2.4.3.tar.gz

Entramos en el directorio donde hemos descomprimido las fuentes:

# cd snort-2.4.3

Creamos un directorio sobre el cual pondremos el programa compilado y desde el que más
tarde crearemos nuestro paquete, por convención se usa el nombre BUILD:

# mkdir BUILD

Ahora debemos usar el archivo configure de las fuentes para preparar el paquete a nuestras necesidades. Hay que destacar que el configure puede tener mil opciones que quedan fuera del propósito de este pequeño artículo, la idea es señalar las más usuales:

–prefix=/usr

Esta opción es para decirle donde queremos que nos instale el programa cuando el paquete este ya creado, es decir, que cuando hagamos el installpkg nos coloque el programa en el directorio /usr del árbol principal.

–sysconfdir=/etc

Esta opción es para decirle donde queremos que nos coloque los archivos de configuración del programa, normalmente nos interesará que los coloque en /etc.

–localstatedir=/var/lib

Con esta opción le decimos donde queremos que nos coloque las librerías, usualmente será en el directorio /var/lib
Para una descripción detallada de las opciones podemos teclear:

# man ./configure –help

Nosotros para nuestro Snort le aplicaremos una opción adicional con la cual Snort se compila preparado para trabajar volcando sus reportes en las bases de datos de MySQL, la opción es:

–with-mysql=/usr

Con ella le decimos que MySQL se encuentra en /usr, y así estas dos aplicaciones se relacionan internamente.
En definitiva nuestro comando /.configure es el siguiente:

# ./configure –sysconfdir=/etc –prefix=/usr –localstatedir=/var/lib –with-mysql=/usr

El siguiente paso es compilar el programa propiamente dicho, si, es verdad, antes podríamos meterle unas opciones para optimizar la compilación pero el propósito de este artículo es crear paquetes de manera sencilla y por tanto asumiremos los valores por defecto de esas
opciones. Compilamos simplemente con make:

# make

Ahora tenemos un paso importante, una vez compilado el programa debemos llevarlo al
directorio en el cual queremos tener todo preparado para la creación del paquete, la ruta del directorio probablemente variará en cada PC dependiendo de donde descarguéis Snort:

# make install DESTDIR=/home/sinnis/snort-2.4-3/BUILD

Ahora entramos en el directorio BUILD y creamos un archivo de descripción, este archivo lo
utilizará installpkg para mostrar por pantalla mientras instalemos nuestro tgz, el archivo debe llamarse slack-desc y debe constar de 11 lineas que comienzan con el nombre del programa seguido de la descripción que os parezca más oportuna, un ejemplo:

snort:
snort:
snort:         Snort ( Detector de Intrusos )
snort:         Versión: 2.4.3
snort:
snort:         Paquete creado por:
snort:         Daniel Medianero garcía
snort:
snort:
snort:
snort:

Este archivo debe colocarse dentro de un directorio llamado “install”, a su vez dentro del directorio BUILD que creamos al principio.
Ahora deberíamos comprobar que los permisos de los archivos que compondrán nuestro
futuro paquete se encuentran en orden, para lo cual utilizaremos los siguientes comandos:

# find /home/sinnis/snort-2.4.3/BUILD -type f -exec chown root.root {} ;
# find /home/sinnis/snort-2.4.3/BUILD -type d -exec chown root.root {} ;
# find /home/sinnis/snort-2.4.3/BUILD -type f -exec chmod 644 {} ;

# find /home/sinnis/snort-2.4.3/BUILD -type d -exec chmod 755 {} ;

Ahora entramos en el directorio BUILD que creamos al principio y con todo ya listo creamos el paquete propiamente dicho usando la herramienta makepkg:

# makepkg -l y -c n snort-2.4.3-i686-1dmg.tgz

NOTA: Por convención el nombre del paquete suele ser el programa seguido de su versión, después la arquitectura, un número que significa el número de compilación, por ejemplo si en un futuro creáis el paquete de nuevo pero añadiendo alguna otra opción en el ./configure le pondríais un 2. Finalmente antes del tgz se suele poner las iniciales de quien ha creado el paquete.

Una vez credo el paquete ya tenéis todo lo necesario, el código fuente que habéis descomprimido y el tar.gz que bajamos al principio podemos eliminarlo.

Espero que os haya servido de ayuda.

Licencia del documento
Derechos de Autor © 2005 por Daniel Medianero García.
Este documento esta liberado bajo la licencia creative commons.

Si queréis contactar conmigo podéis encontrarme en los foros de Espacio Espacio Linux ( http://www.espaciolinux.com/ ) con el nick de Meleagro, en el IRC servidor Freenode en los canales slackware-es y bsd-es como Meleagro, en mi Blog ( http://www.meleagro.esp.cc ) o en mi correo electrónico ( meleslack@gmail.com ).


Temas:
Documentación, Software


Etiquetas:
, ,

Feed Espacio LinuxSi este artículo ha sido de tu interés, considera hacer un comentario o suscribirte al feed para que te enteres de nuevos artículos a través de tu lector de noticias o email.

Acerca del autor

Publica un comentario

Puedes usar estas etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>