lunes, 16 de marzo de 2009

Como crear paquetes en PCLinuxOS

Como había comentado voy a escribir un poco sobre como crear paquetes para pclos, es una pequeña ayuda para quienes van iniciando en Linux o en pclos y quizás no sepan como hacer para crear o instalar un paquete que no está en los repositorios oficiales.

Bueno debo comenzar diciendo que "según los administradores del foro PCLinuxOS instalar cualquier paquete fuera de los repositorios oficiales es una buena manera de dañar la distribución".

A esto yo digo que para eso la distro es gratis, si se daña me la vuelvo a instalar, ademas como vamos a aprender, sin contar conque en la web hay mucho radical que detesta el N00B.

Ahora si empecemos...

Para crearnos cualquier paquete para pclos debemos instalar los paquetes devel que sean necesarios, por ejemplo si vamos a instalar algo que necesita de QT3 debemos tener instalado libqt3-devel y así para cualquier paquete que se necesite debemos tener el paquete devel instalado, bueno, o casi siempre.

Otro detalle es instalar libxorg-x11-devel esto cuando se queja sobre las X.

Veamos dos formas de instalar los paquetes que descarguemos en su forma tar.gz o tar.bz2.
Lo normal es:
1.- ./configure
2.- make

3.- make install
"esto como root"

Esta forma es valida pero al momento de querer quitar el paquete del sistema es muy probable que nos cueste trabajo. La otra forma es en el tercer paso llamar a CheckInstall en lugar del típico make install.
CheckInstall se encarga de crear un paquete rpm a medida para la distro, no viene instalado en pclos así que lo podemos instalar vía Synaptic.

Podemos crear un paquete para probar, recomiendo probar con Knetstats el cual es un monitor de red y la descarga del paquete es pequeña, ademas que no creo dé ningún error en la creación del paquete rpm.

Descargamos el paquete, lo descomprimimos, observación, "no dejar espacios el los nombres de los directorios donde se encuentre el paquete", ejemplo: home/usuario/mis archivos/knetstats-1.6.2 - corregido: home/usuario/mis_archivos/knetstats-1.6.2 si dejamos un espacio el paquete no se creara, lo digo por experiencia xD

Dentro de directorio de Knetstats abrimos un terminal y procedemos:
1.- ./configure
2.- make

3.-
checkinstall "esto como root"

Veremos algo como esto en el terminal después de checkinstall:

[root@user knetstats-1.6.2]# checkinstall

checkinstall 1.6.1, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.


The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]: y "colocar y dar enter"
Preparando la documentación del paquete...OK

Por favor escribe una descripción para el paquete.
End your description with an empty line or EOF.
>> Network traffic monitor "esta es la descripción que le coloque al paquete"

Preparando la documentación del paquete...OK

Por favor escribe una descripción para el paquete.
End your description with an empty line or EOF.
>> Network traffic monitor
>>

**************************************
**** RPM package creation selected ***
**************************************

This package will be built according to these values:

1 - Summary: [ Network traffic monitor ]
2 - Name: [ knetstats ]
3 - Version: [ 1.6.2 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ knetstats-1.6.2 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ knetstats ]

Introduce un número para cambiar algún dato u oprime ENTER para continuar:

Aquí podemos elegir cualquier numero que nos dan en la lista para modificar los valores por defecto, si no queremos cambiarlos solo damos Enter.

======================== Installation successful ==========================

Copying documentation directory...
./
./doc/
./COPYING
./README

Copiando los archivos al directorio temporal...OK

Eliminando símbolos de binarios y bibliotecas ELF...OK

Comprimiendo las páginas de manual...OK

Creando la lista de archivos...OK

Creando paquete RPM...OK

NOTE: The package will not be installed

Borrando directorios temporales...OK

Borrando el directorio doc-pak...OK

Escribiendo el paquete de respaldoOK

Borrando el directorio temporal...OK


**********************************************************************

Done. The new package has been saved to

/usr/src/rpm/RPMS/i386/knetstats-1.6.2-1.i386.rpm
You can install it in your system anytime using:

rpm -i knetstats-1.6.2-1.i386.rpm

**********************************************************************

¿Donde esta el paquete? la dirección está en negrita un poquito más arriba :)

Luego de ubicar el paquete creado si ya lo podemos instalar desde el terminal o con Kpackage si no lo tenemos lo podemos instalar desde Synaptic.

Abrimos Synaptic y eliminamos el paquete knetstats que aparece en los repos que es una versión anterior, para instalarlo desde el terminal escribimos lo siguiente:

[root@user i386]# rpm -ihv knetstats-1.6.2-1.i386.rpm

Si todo sale bien ya tendremos el paquete creado instalado en la distro, para quitarlo lo podemos hacer desde Synaptic, ademas de salir una versión nueva en los repos el mismo sera actualizado sin problemas.

Bueno espero les sirva a los nuevos usuarios.

No hay comentarios: