¿Cómo crear paquetes .tgz? (Slackware)


No sé si algunas vez se han preguntado como hacer un paquetes tgz. Para los que han usado Slackware. O cuando se baja algún programa pero no esta el tgz. Nos vemos obligados a bajar el source y compilarlo a pata. Que tampoco es la gran tragedia, pero es tedioso. Por eso les voy a explicar como crear paquetes tgz. Para solo tener que compilar el programa una vez. Y poder usar el paquete indefinidamente(hasta que salga una nueva versión).
La ventaja de compilar paquetes desde el source es que te quedan a la medida. Le podes habilitar soporte para muchas opciones y de paso deshabilitar otra que no quieres que estén.

Paso 1

Descargar el source y descomprimirlo.

tar -xzvf paquete.tar.gz o tar -xjvf paquete.tar.bz2

Ingresar a la carpeta descomprimida

cd paquete

Crear un directorio, donde se guardara el source ya compilado. Este es el código que se instalara cuando instalemos el paquete. Para este ejemplo llamemos al directorio CONSTRD. (Puede ser cualquier nombre)

mkdir CONSTRD

Paso 2

En este paso es cuando elegimos las opciones que le queremos dar a nuestro programa. Y las opciones que queremos activar del software. Por ejemplo Amarok (Reproductor de música muy famoso) trae por default soporte para manejar su base de datos en SQlite. Sin embargo compilando desde el source se puede dar soporte para que maneje su base de datos en MySql.

El archivo configure puede tener millones de opciones. Y estas dependen de cada programa. Para mas información de las opciones. Ejecutar:

./configure --help

Opciones básicas:

–prefix=/usr/local
Con esta opción le decimos a partir de cual directorio se va a instalar. En GNU/Linux /usr/local es el directorio donde por defecto o estándar, se instalan los programas que instale el usuario. Sin embargo también se pueden instalar en /usr o en /opt.

–sysconfdir=/etc

Esta opción es para especificarle donde quedarán los archivos de configuración. EN GNU/Linux los archivos de configuración son guardados en /etc.

–localstatedir=/var/lib

Esta opción especifica donde van a quedar las librerías del programa. Si no se especifica esta opción, se instalarán en /usr/local/lib. Si antes se añade esta opción: –prefix=/usr/local

Se pueden agregar todas las opciones que quieran. Al final quedará algo así:

./configure --sysconfdir=/etc --prefix=/usr/local --localstatedir=/var/lib (Mas opciones)*

Luego de ejecutar ./configure y que se verifique que se cumplen todas las dependencias. Se ejecuta make, para compilar el programa.

make

Paso 3

Luego de esto hay que instalar el programa. Pero le vamos a especificar que se instale en nuestra carpeta CONSTRD (Con el path desde la raíz del file system).

make install DESTDIR=/path/al/source/CONSTRD

Paso 4

Luego de ejecutarlo y ver que no salga ningún error. Debemos crear un archivo de descripción. Para que sea usado por el comando para instalar paquetes tgz (installpkg). Hay que crear un directorio install dentro de la carpeta CONSTRD.

cd CONSTRD
mkdir install
cd install

Con cualquier editor crear un archivo llamado slack-desc, con 11 lineas comenzando con el nombre del programa y una descripción (Puede ser cualquier cosa).

paquete:
paquete:
paquete:       Nombre del Paquete
paquete:            version XX
paquete:
paquete:       Creado por Mae
paquete:
paquete: Paquete con soporte para viajar en el tiempo y entre dimensiones.
paquete:
paquete:
paquete:

Paso 5

Luego
cd ..
Asegurarse estar en la raíz del directorio CONSTRD y ejecutar:
makepkg -l y -c n nombrePaquete-version-Arquitectura-Iniciales.tgz

Con este creamos el paquete con el nombre que deseemos. Para el nombre de los paquetes se maneja el siguiente formato:

El nombre del paquete va seguido de la versión. Luego la arquitectura, el número de compilación y las iniciales de la persona que lo compiló.
Adicionalmente se puede agregar alguna palabra significativa luego del nombre del paquete, para distinguirlo de alguna característica en especial que no posean los demás paquetes.

Espero que les sea útil.

  1. #1 por Giorgio el febrero 4, 2009 - 10:29 am

    Tremendo aporte!!!!! Ya lo voy aprobar.

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

A %d blogueros les gusta esto: