Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Construye tus propios paquetes (rpm, deb, tgz)

Software
Por sinner
departamento compila-compila-vuelve-a-compilar-y-luego-empaqueta , Sección Desarrolladores
Puesto a las Fri Oct 25th, 2002 at 01:47:37 PM CET

Has encontrado ese programa/versión de la librería en CarneFresca o en ForjaFuentes que te va a solventar la vida. Llevabas casi 3 semanas buscándolo. Y ahora va y resulta que no está en formato [.deb | .rpm | .tgz] para tu distribución favorita.

¿Qué haces? ¿te tiras de los pelos? ¿te vas a dormir? ¿te instalas el Windows?

Norl!!!

Créate tu propio paquete.

 


Intro

Esto del OpenSource es aquello de "si tienes un picor, te rascas... y publicas el código fuente". Incluso para los tutoriales como éste.

Mientras luchaba con unas librerías actualizadas para poder instalar un programa que necesitaba urgentemente, me vi en la necesidad de aprender varios secretos sobre la creación de RPMs en particular y todo tipo de paquetes en general. Y, ya puestos, ¿por qué no hacer un mini-tutorial?

El problema

Encuentras un programa o librería que necesitas para tus aventuras en Linux. Vas a la sección de Downloads y descubres, como no, que solo existen paquetes para las distribuciones que no usas. No falla. Pasa siempre. YPMQ miran la distribución que usas y, dinámicamente, esconden los paquetes que necesitas.

Entonces, te queda bajarte las fuentes del programa / librería, configurarla, cruzar los dedos, compilarla (y que no pete) e instalarla (y que no te rompa nada). Encima, no te garantiza que vas a obtener los "provides" necesarios para instalar el otro programa que es el que realmente quieres instalar.

Como casi siempre, no eres el primero que se encuentra en tamaño brete. Afortunadamente, algunos de los compañeros de penas saben programar, tenían tiempo libre y, en base a código de un proyecto anterior, van y empiezan un proyecto que te va a alegrar: un generador de paquetes!!!

La solución

Efectivamente, existe tal generador de paquetes. No, no es magia negra. Sí, pueden utilizarlo Bilo, Nano... incluso GonzoTBA, alias "cambiar a ReiserFS con 2 c*j*n*s".

El programa se llama CheckInstall. Si os fijais, el proyecto se aloja en una web de Mexico. Eso sí, la documentación que he encontrado, está en el más puro Inglés. Pero no pasa nada. El Sinner lo va a explicar.

¡Crea tus paquetes!

El primer paso consiste en instalarse el programilla. En su sección de Download, lo encontrarás en formato de código fuente (tar.gz), en paquete tipo RedHat/Mandrake/SuSE (rpm), para Debian (deb) y para Slackware (tgz). Vamos, para todos los gustos.

Luego, asegúrate que tienes el programa en cuestión en el PATH del administrador (root). El programita se llama "checkinstall". Si no está en el path de root, ponle un link en, por ejemplo, en /usr/sbin/.

¡Ahora ya estamos preparados para crear nuestros própios paquetes!

El segundo paso será descargar el código fuente del programa o librería que queramos. Lo descomprimimos en un directorio. Ahora toca leerse el README, el BUILD, el COMPILE, el INSTALL y todos esos bonitos y edificantes ficheros. Sí, hay que leerlos. No, no es broma.

Ahora toca configurar el paquete. Primero, haremos un "./configure --help" para ver que se puede configurar. Usualmente podremos configurar (y nos interesará configurar) alguna de estas opciones:


--bindir=DIR
--sbindir=DIR
--target=TARGET

Que son, por orden:

  • Directorio "DIR" donde poner los ejecutables
  • Directorio "DIR" donde poner los ejecutables para el administrador
  • Configurar para la plataforma "TARGET"

Dependiendo del programa configurador, tendrás muchas opciones. Utiliza las que necesites, o las que veas que te crean paquetes con los archivos en su sitio (ya que cada distribución pone los archivos donde les da la gana... aunque ahora el LSB aprece que va a arreglar todo esto.)

Cuando lo tengas claro, procede a dar la orden "./configure" con todas las opciones que necesites, como por ejemplo "./configure --prefix=/usr/share/apps --bindir=/usr/bin --build=i586".

Si te da errores, sé avispado, utiliza Google, los grupos de noticias de EcolNet y tu intuición.

Cuando acabe sin errores, es hora de dar el siguiente paso: la compilación.

¡No te asustes! Es bien facil. Da la orden "make", te vas a por la cervecita y a esperar que acabe la compilación. Evidentemente, si tienes un AthlonMP Dual a 2200, solo podrás tomarte una cañita rápida, y si usas un i386sx, acabarás beodo.

Cuando termine (bién, es de suponer) la compilación, te dirá que es el momento de hacer "make install" como root. En este instante, te cambias a root y utilizas la arcana mágia... digooooo, que utilices el programa CheckInstall, que con la mágia, la casa acaba oliendo a cosas raras.

Da la orden "checkinstall" y, si no le pasas ninguna opción, entrarás en el modo interactivo.

  • Primero te pregunta si quieres crear el directorio de documentos ./doc-pak . Responde como te convenga en tu caso.
  • Ahora, el programa empieza a darse un garbeo por tu disco y comprueba donde van a acabar cada uno de los archivos que contiene el programa de marras.
  • Luego te pregunta qué paquete quieres crear: Slackware [S], RPM [R] o Debian [D]. Como ves es sencillo.
  • Si por esas cosas, el paquete original no tiene un "Summary" o pequeño resumen sobre el paquete, te pedirá que lo entres.
  • Luego te muestra una lista de las opciones, como esta:


    1 - Summary: [ CheckInstall installations tracker, version 1.5.3 ]
    2 - Name: [ checkinstall ]
    3 - Version: [ 1.5.3 ]
    4 - Release: [ 2mdk ]
    5 - License: [ GPL ]
    6 - Group: [ Applications/System ]
    7 - Architecture: [ i586 ]
    8 - Source location: [ checkinstall-1.5.3 ]
    9 - Alternate source location: [ ]
    10 - Provides: [ checkinstall ]

    Como ves, es autoexplicatio. Cambia lo que quieras. Por ejemplo la Release, para indicar que es una compilación nueva que has hecho y le pones un número más, y le añades un indicativo apra saber que la has hecho tú (GonzoTBA) y acabas poniendo en Release 3gtba, pongamos por caso. Si el programa se distribuye con licencia BSD, pues le cambias el apartado correspondiente. Si quieres compilar especialmente para un Athlon, pues lo cambias.

  • Cuando hayas acabado de afinar, le das al enter y ¡empezará la construcción del paquete!

Tras el momento de euforia, verás que acaba diciéndote algo así como:


Done. The new package has been installed and saved to
/usr/src/RPM/RPMS/athlon/checkinstall-1.5.3-3gtba.athlon.rpm

You can remove it from your system anytime using:

rpm -e checkinstall-1.5.3-3gtba

Este anuncio te indica el directorio donde tienes el paquete, que te ha instalado el paquete en el sistema y te da la forma de desinstalarlo. Y ya está.

¿A que no era tan dificil?

Salut,
Sinner

< Sourceforge se moderniza (6 comments) | ¿La Era de la Información? (6 comments) >
Enlaces Relacionados
· Freshmeat
· escomposlinux.org
· CarneFresca
· ForjaFuentes
· un proyecto anterior
· Bilo, Nano
· GonzoTBA
· cambiar a ReiserFS con 2 c*j*n*s
· CheckInstall
· documentación
· Download
· LSB
· Google
· grupos de noticias de EcolNet
· More on Software
· Also by sinner

Encuesta
¿instalas paquetes a partir de código fuente?
· Si, con src.rpm 10%
· Si, con src.deb 7%
· Si, con tar.gz 53%
· Lo instalo todo a mano partir del código fuente 8%
· Ya conocía CheckInstall :) 7%
· Llamo a mi pringado para que lo haga él 11%

Votos: 67
Resultados | Otras Encuestas

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Construye tus propios paquetes (rpm, deb, tgz) | 3 comentarios (3 temáticos, editoriales, 0 ocultos)
En Debian no es tan difícil (3.00 / 1) (#2)
por TMachine a las Fri Oct 25th, 2002 at 07:21:19 PM CET
(Información Usuario)

Hola a todos,

No he tenido ocasión de testear ese programa, lo pasaré a mi lista de tareas pendientes...

De todas formas, yo creía que hacer un paquete debian era tarea de gurús, y para nada, incluso yo he sido capaz de hacerme un par de ellos, sobre todo, es muy fácil si el source incluye los makefile.in o makefile.am, pues el programa de debian te cambia todos los path el solito...

Por si a alquien le pica la curiosidad que mire el siguiente link:

http://www.debian.org/doc/maint-guide/

Un saludo a todos



 
Buen artículo (none / 0) (#1)
por gonzotba a las Fri Oct 25th, 2002 at 05:24:45 PM CET
(Información Usuario)

Y muy finas las ironías sobre el prototipo de "luser" en el que parece me he convertido. "Por un perro que maté...".

Yo ahora mismo no le veo ningún interés a lo de los paquetes, pero el día menos pensado me hará falta y está bien saber que lo tendré por aquí.



 
Instalacion de CheckInstall (none / 0) (#3)
por sinner a las Fri May 14th, 2004 at 11:14:56 PM CET
(Información Usuario) http://www.escomposlinux.org/sinner/

Ha pasado ya un tiempo desde el articulo.

Agunas distribuciones ya proporcionan el paquete checkisntall. Por ejemplo, Fedora y Mandrake disponen del paquete.

Vamos, que cada vez es mas facil utilizar el programita este.

Salut,
Sinner


--
Sinner from the Prairy
Pogüered bai Mandrake
BOFHers Syndicate http://bofhers.org


 
Construye tus propios paquetes (rpm, deb, tgz) | 3 comentarios (3 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda