Mini-HOWTO Autor: Stefan Koerner (ripclaw@rocklinux.org) editor: vim 5.4 (rocklinux-1.3.7/linux-2.3.34; en-DE) URL: www.rocklinux.org/people/ripclaw/articles/rock-package-HOWTO Historial de Revision: 29th April 2000 Liberada la primera version 21st May 2000 Integrados todos los cambios Copyleft 2000 Stefan Koerner para Rock Linux. Este documento es creado en codigo bajo los terminos de la GPL. (Estuve mirando la FDL, pero no me agrado). Recientemente he estado recibiendo muchas preguntas acerca de los paquetes, asi que decidi escribir un poco de documentacion acerca de los mismos. To say it with Alan Cox: "La documentacion vale la pena solo para responder todos sus correos con `RTFM`" Que explicare aqui ? - Que tipos de paquetes existen en ROCK linux? - Donde buscar un pkg o un ext? - Cual es la diferencia filosofica entre pkg y ext? - Escribiendo una extension - El ambiente de la extension Que no explicare aqui? - Manejo de paquetes - man pkg-tools ! - Los flists - ls /var/adm/flists ! - La informacion de los paquetes - ls /var/adm/packages ! Los diferentes paquetes en ROCK Linux: Empezando poco despues de liberar la version 1.2.0, ROCK Linux fue cambiado para facilitar el mantenimiento de un largo numero de paquetes para los desarrolladores - el resultado fue una division en dos tipos de paquetes de software: "pkg" - los paquetes base. "ext" - los paquetes de extension. El paquete en su mayoria de un tarball, asi que hablare acerca de los archivos requeridos para crear un paquete para ROCK Linux aqui lo definiremos como el "paquete". Los paquetes base son la parte mas basica de ROCK Linux y son en su mayoria paquetes que otas herramientas requieren: el kernel, libs, vi, los scripts-init, etc. Los paquetes base son matenidos por una sola persona y estos estan disenados para ser facilmente mantenidos por una persona. Si es un paquete base o no, no esta definido a un 100% , la definicion basica es: "Es un paquete base si el sistema depende de el y es absolutamente necesario tenrlo en el primer CD de instalacion." (Claro - nethack *es* extremadamente necesario para la administracion sana del sistema !) Todo lo demas es un paquete de extension. Los paquetes de extension estan disenados para ser facilmente mantenidos por un largo numero de personas en diferentes lugares, y tambien facilmente recolectado por el encargado de los paquetes base. Note tambien que el sistema deberia de trabajar completamente sin ninguna extension. Finalmente debo anotar que la extension y la base no son mas que alguna configuracion para los scripts - el cula automaticamente creara el tar-bz2-ball final y un poco de informacion utilizada para instalar los datos finalizados. Donde buscar los diferentes paquetes? Los codigos para estos paquetes puedem ser encontrados en los tarballs de ROCK Linux en ./pkg-config/ y ./ext-config/ respectivamente. Un ejemplo de un grupo de paquetes de un desarrollador puede encontrarse en https://www.rocklinux.org/people/ripclaw/ext/ El cual es una copia de mi grupo de extensiones estables. Si ha decidido colaborar con un paquete, trate de localizar y contactelo directamente si es posible, esto mantiene bajo el trafico en la lista de correo. Si ud tiene preguntas relativas a paquetes, sientase libre de contactarme a mi (ripclaw) o a kent skaar. Escribiendo una extension: Las extensiones de ROCK Linux son muy sencillas: El ".ext" es envuelto por un script y usado para configurar el paquete final de la distribucion. Ud puede usar comandos normales de bourne shell (sh) en la extension. Como ejemplos vea los archivos nasm.ext o balsa.ext, que son las extensiones ejemplo de Clifford y mia respectivamente. El paquete de clifford tienen muchos comentarios, le sugiero que lo lea. ./misc/ext-intern/TEMPLATE.ext es tambien un buen lugar para empezar con su extension. Ahora empezare a explicar la estructura basada en mi balsa.ext, version 0.8.0pre1-20000424. Yo modifique los datos originales en dos etiquetas. La extension: inicio de los datos del paquete # ROCK Linux balsa extension package no es requerido, pero es bueno hacerlo: incluya el nombre del paquete. # # Written by Ripclaw (xripclaw@gmx.net) ud deberia escribir la direccion de correo del autor (la suya) para que pueda ser contactado facilmente en caso de problemas. # download field # [D] 2782121170 balsa-0.8.0-pre1.tar.gz ftp://ftp.newton.cx/pub/balsa/ La [D] es el campo de descarga de los datos - testo es analizado. las serios de los numeros son el output de cksum, un generador de checksum usado en el tarball del paquete *DESCOMPRIMIDO* que descargo. ud puede generar esto de uan manera facil utilizando "./scripts/Download -mk-cksum $NOMBRE-DEL-ARCHIVO" luego le sigue el nombre original del archivo. la ultima cosa anotada es el path *COMPLETO* en donde el tarball es almacenado en la red - incluyendo el ultimo slash ("/") ! recuerde que el slash, es el que define la URL lo que no termine con el son datos descargables - y en nuestro caso concadenara en nombre del archivo a la URL y provocara un error dificil de reparar... # was : https://www.balsa.net/ nada en especial - solo matiene la ubicacion original alrededor para documentacion. # requires glib >= 1.2.1; GTK >= 1.2.1; Imlib >= 1.9.2; gnome-libs >= 1.0.8 es bueno anotar al menos en los archivos de extension lo que su paquete necesita. # priority field # cliff said: default value is >5 --host=`. $target el tipo de host para el que estamos compilando. $arch_machine el tipo de CPU del sistema. $pkg el nombre del paquete especificado en el archivo INDEX. Ahora, vaya y observe el nasm.ext y trate de crear su propio paquete. (nasm.ext probablemente tenga algunas adiciones nuevas y tambien le muestra algunas de las cosas que ud puede hacer...) HEY ! ESPERE ! Como sabe el sistema cual archivo ".ext" del paquete obtiene de donde y como incluirlo ? Observe el INDEX.ripclaw - acaba de ser agregado al archivo INDEX en el directorio ./ext-config/ del tarball ROCK Linux - ahi la categoria del archivo (e.g. multimedia/mp3) es dada como el directorio path seguido por el nombre del paquete y el URL de los archivos package.ext. Ahora vaya y traiganos muchos paquetes, y trate de mantener un grupo similar al mio - esto le ahorra a ud y a nosotros trabajo. EOF