viernes, 27 de diciembre de 2013

Tutorial crear paquetes .pet en Puppylinux

Dije anteriormente que trataría de hacer un tutorial de como crear pets, seguro hay mas de una forma, aqui les explico como lo hago yo y cuales son los puntos que tomo a consideración.
Bueno pero primero los voy a aburrir con la teoría.
Definición de pets
Un pet es un archivo tarball con una extensión md5sum integrada, es muy práctico, ya que el archivo se le puede comprobar la integridad después de ser descargado.
Se utilizan para empaquetar programas diseñados para versiones y compilaciones especificas de Puppylinux y proporcionan iconos en el escritorio, menu de información especifica, etc.
Los archivos tarball tienen una extensión .tar o tar.gz si se comprimen con gzip, estos archivos pueden tener una extensión .pet
Estructura de un pet 
Cuando pensamos en un .pet como en un archivo ejecutable que se instalará en su interior de acuerdo como se halla creado y sus carpetas coinciden con el sistema de archivos de Puppylinux.
Eso quiere decir que si fuera un icono que se se va a instalar dentro y ese icono lógicamente se aloja en /usr/share/icons/icono.png
  
quiere decir que dentro del pet tendría que haber un directorio usr, y dentro de este, un directorio share y así sucesivamente hasta llegar al icono.png 

Pinstall y Puninstall
pinstall.sh y puninstall.sh son archivos que se pueden ejecutar inmediatamente después de instalado o desinstalado el pet y que pueden ser utilizados para anunciar ciertos eventos, o preconfiguraciones previas luego de instalado el pet, así como también eliminar los archivos remanentes luego de desinstalado el pet, tiene muchos usos y el creador del paquete puede utilizarlo a su conveniencia.

Registros de instalaciones de paquetes 
los pets instalados pueden verse y desinstalarse dentro de la interfaz PPM puppy package manager y de una manera mas detallada en /root/.packages

Creando pets
Para crear un pet utilizaremos un script llamado dir2pet y viene por defecto en todas las distribuciones Puppylinux.
Recuerdan que la vez anterior compilamos conky y lo instalamos en una carpeta aparte para crear el pet, pues bien vamos a copiar dicha carpeta (conky-1.9.0) en /root/ para poder trabajar ahi. 
una vez copiado hacemos un listado de nuestro archivos para ver el nombre de la carpeta

ls 
 └─[Badass][$] ls
Badass       Downloads                            my-documents               spot
ccgit        File-Sharing                         network                    Startup
Choices      ftpd                                 Puppy-es_OS.txt            uptogit
conky-1.9.0  MoManager-es_SV-batterup-1.0         puppy-reference            Web-Server
descarga     MoManager-es_SV-batterup-1.0.tar.gz  pup-volume-monitor-0.1.10
Desktop      my-applications                      Script


Bien ahi esta nuestra carpeta luego hacemos el comando dir2pet seguido del nombre del directorio del que queremos hacer paquete 

dir2pet conky-1.9.0


Bien el script esta en ingles voy a traducirte lo mas importante
dice que el directorio conky debe separar la versión del nombre por una linea intermedia (-) algunos ejemplos seria
conky-1.9.0,  si fuera conky en español  conky_español-1.9.0 y asi de esa forma
otra cosa traten de hacer los paquetes en minúscula no es una regla pero si se fijan en los repositorios verán que la mayoría están empaquetados en minúsculas.
Presionamos Enter para continuar.


La siguiente ventana dice que el script miró dentro de tu directorio y que necesita un archivo .desktop por si quieres agregar una entrada en el menu si el paquete conky nosotros le hubiéramos hecho su respectivo archivo desktop (explicado en tutoriales anteriores), el scritp lo hubiese detectado, entonces recomienda hacer uno y colocarlo en /usr/share/applications.


Si desea hacerlo presione cualquier letra o caracter y luego enter
si no, presione enter.
Como no necesito un archivo desktop para el ejemplo solo le daré Enter.



Añadir una descripción.
El script recomienda que agregues una descripción a tu paquete, que sea corta entre 1 y 3 palabras, pueden ser mas la idea es que sea algo que describa bien el paquete que estas haciendo, yo le voy a poner "Un monitor de estado" (sin comillas).

 Esta parte es importante para algunos, el script pide que ingreses el listado de dependencias necesarias y que ese listado deberá empezar con + y delimitarlas con una coma (,) si se recuerdan el ejemplo anterior para conky yo necesité de liblua5.1 y libtolua++5.1 asi que bien podría agregarlas si quisiera, de todos modos el sistema va a tirar errores si falta alguna librería o dependencia.
+liblua5.1,+libtolua++5.1




Un Enter mas y se abrirá un interfaz que te ayudará a crear una base de datos para este paquete.
Enter


No cierren la ventan principal de script aun.
Bien esto no necesita mucha explicación, en categoría le puse System, me pareció lo mas lógico, en Folder path within repository mis pets trato de compartirlos con el proyecto Puppy-es y por esa razón pongo esa ruta para que otros puedan saber en que repositorio se aloja dicho .pet,  sobre lo de compatible-distro y compatible-distro-versión también es bastante logico.
Click en Generate packages database entry.


 Y eso es todo ahora ya has creado un paquete .pet de forma correcta, sale una pequeña leyenda que dice que si te fijas en el directorio conky-1.9.0 se creó un archivo llamado pet.specs y que en un futuro no es necesario pasar por este script para hacer de nuevo este paquete.
Usted puede editar manualmente los archivos, si es necesario, y crear otro paquete sólo con hacer esto:
 # tar -c -f conky-1.9.0.tar conky-1.9.0/
# gzip conky-1.9.0.tar
# tgz2pet conky-1.9.0.tar.gz


Y ya está, yo recomiendo cuando encuentras un pet y no estas seguro de su contenido descomprimirlo e ir probando, ademas también puedes tomar nota y aprender como otros estructuran sus paquetes, es bueno tratar de emular a los grandes. Saludos



5 comentarios:

  1. hola nilson: impresiónante laburo. gracias. che si hablas con jose2424 decirle que le deje un mensaje en T!.

    ResponderEliminar
  2. Eres un gran genio NILSON, gracias por ser tan generoso en tu enseñanza. Exitos en tu carrera.

    ResponderEliminar