SlideShare a Scribd company logo
1 of 10
Download to read offline
Empaquetando
nuestras aplicaciones
para distribuirlas
Hoy en día son muchas las personas que se dedican al desarrollo de software,
pudiendo ser el desarrollo de aplicaciones completas tanto para escritorio como para
Web, o de simples aditamentos o extenciones a una ya desarrollada; éstas personas se
ven en la imperiosa necesidad de contar con un medio que les permita distribuir éstas
aplicaciones, dentro sus entornos, o hacerlos públicos en Internet para beneficio o
conocimiento de otros usuarios.
El empaquetar una aplicación representa una de las mejores y más recomendadas
formas de distribuir una aplicación a usuarios de cierto entorno, o ponerla a disposición
en algún repositorio disponible en Internet.
                                                  proceso tenga la facilidad de realizarse de
                                                  forma automática, considerando además sus
                                                  posibles actualizaciones, parchado de bugs,
                                                  mantención y acceso a los desarrolladores
                                                  de la misma.
                                                  El proceso de empaquetado no es un
                                                  proceso tan complicado como parece, pero
                                                  tiene     ciertas    variantes    dependiendo
                                                  principalmente de la distribución a la cual
                                                  esta destinada la aplicación. Los paquetes
                                                  creados consideran básicamente cierta
                                                  información      común     (las   fuentes,   la
Introducción                                      arquitectura,      la      descripción,    las
                                                  dependencias, los requisitos, etc), ésta
Muchos cuando empezamos a desarrollar
                                                  información es contemplada en uno o dos
nuestras     primeras    aplicaciones,    para
                                                  archivos de especificación y/o control en
ponerlas en producción o a disposición de
                                                  ambos casos; archivos que son la principal
otros usuarios, generalmente nos limitamos a
                                                  fuente de descripción y especificación para
realizar una simple copia de los programas y
                                                  futuras regeneraciones del paquete en si.
archivos    en    las    máquinas      destino;
representando todo ésto un proceso                Una de las mayores facilidades que provee el
laborioso y muchas veces complicado, ya           empaquetado de aplicaciones es: su fácil
que representa que en muchos casos                distribución, actualización y parchado de
tengamos que instalar ciertos programas o         bugs en algunos casos, tareas, que a la
librerías que hacen falta para que nuestra        postre se realizan de forma automática, con
aplicación funcione correctamente y más aún       tan solo poner a disposición los nuevos
cuando el software instalado en cada PC           paquetes o parches según corresponda.
varia de una a otra.
Para evitar todo este proceso tedioso, es         Elementos de un proceso de
recomendable      empaquetar     nuestras
                                                  empaquetado
aplicaciones, para que el proceso de
distribución sea transparente para los            Son varios los elementos que se deben
usuarios destino, y sobre todo que este           considerar al momento de empaquetar una
aplicación, entre los más comunes podemos        Características
denotar:
                                                        RPM está diseñado para disponer de
                                                    ✔
       La arquitectura destino del paquete
   ✔
                                                        potentes parámetros de consulta.
                                                        Usted puede hacer búsquedas de
       El empaquetado de fuentes o binarios
   ✔
                                                        paquetes a lo largo de toda la base de
       La distribución destino
   ✔
                                                        datos o sólo de ciertos ficheros.
       Información del paquete, expresada               También puede encontrar fácilmente a
   ✔
       mediante    directivas (descripción,             qué paquete pertenece un fichero y
       dependencias, etc.)                              de dónde proviene. Los ficheros RPM
                                                        en    sí    mismos     son     archivos
       Firma digital del paquete, para
   ✔
                                                        comprimidos, pero puede consultar
       garantizar la autenticidad del mismo
                                                        paquetes independientes fácil y
En su generalidad esta información es                   rápidamente, gracias a una cabecera
contemplada en los archivos destinados a                binaria a medida añadida al paquete
especificar y/o controlar el proceso de                 con toda la información que puede
empaquetado en si.                                      necesitar, almacenada sin comprimir.
                                                        Esto permite consultas rápidas.
Formatos de empaquetado y                               Otra poderosa característica es la
                                                    ✔
                                                        habilidad de verificar paquetes. Si
distribución                                            está preocupado por haber borrado
                                                        algún fichero importante, sólo tiene
Por lo general cada distribución tiene su
                                                        que verificar el paquete. Quedará
propia    forma    de   empaquetar    sus
                                                        cumplidamente       informado       de
aplicaciones; pero hoy en día existen dos
                                                        cualquier anomalía. Si ésto ocurriera,
grandes familias que han impuesto
                                                        podrá reinstalar el paquete si lo
supremacía en este tema como son:
                                                        considera necesario. Cualquier fichero
       RMP (Redhat Package Manager) de
   ✔                                                    de configuración que usted tenga
       la familia de RedHat (RHEL, Fedora,              quedará a salvo.
       CentOS), Mandriva, Suse
       Deb de la familia de Debian (Debian,
   ✔
                                                 Requisitos
       Ubuntu, y derivados).
                                                 Al momento de empaquetar una aplicación,
                                                 se precisa tener instalados los siguientes
RPM                                              paquetes:
RPM es el gestor de paquetes de Red Hat                 rpm-build
                                                    ✔
(Red Hat Package Manager). Aunque
                                                        rpm-devel
                                                    ✔
aparece Red Hat en su nombre, la intención
es que sea un sistema de empaquetado                    gnupg
                                                    ✔
abierto y disponible para el uso de
                                                        install
                                                    ✔
cualquiera. Permite a los usuarios tomar el
código fuente (source code) y empaquetarlo              gcc*
                                                    ✔
en forma de fuentes y binaria de forma que
                                                        automake*
                                                    ✔
los ficheros binarios sean fácilmente
instalables y rastreables y las fuentes puedan          autoconf*
                                                    ✔
ser reconstruidas con facilidad. También
                                                 Todos y cada uno de éstos pueden ser
gestiona una base de datos de todos los
                                                 instalados mediante el gestor de paquetes de
paquetes y sus ficheros que puede ser usada
                                                 la distribución utilizada.
para verificar paquetes e interrogarla para
obtener información acerca de ficheros y/o
paquetes.
archivos necesarios para la creación del
Creando nuestro paquete                           paquete, así mismo de los archivos
Por tratarse de un artículo que pretende          generados.
demostrar      el     empaquetamiento   de
                                                  La estructura recomendada es la siguiente:
aplicaciones,      su    procedimiento    y
características del mismo y para que se
tenga una mejor idea de lo que deseamos
hacer, explicaremos el objetivo y las
características de nuestro paquete, bajo el
siguiente detalle:
       Crearemos un paquete que incluya
   ✔
       los distintos números de la revista
       Atix.
       El      paquete     dispondrá     de
   ✔
       actualizaciones, ésto representa que
       cada vez que se libere un nuevo
       número de la revista, también se
       liberara     una  actualización   del
       paquete, que obviamente permita
       contar con el nuevo número de la
       revista Atix
                                                         ~/rpm/BUILD: El directorio donde los
                                                     ✔
       El paquete dispondrá de una firma
   ✔
                                                         códigos fuente se construyen.
       digital, para garantizar la autenticidad
       del paquete                                       ~/rpm/RPMS:          Contiene       los
                                                     ✔
                                                         directorios, uno por cada arquitectura,
       El formato del paquete será un RPM,
   ✔
                                                         que recibirán posteriormente los
       para distribuciones como RHEL,
                                                         ficheros binarios compilados.
       CentOS, Fedora, etc. (en posteriores
       entregas        realizaremos       el             ~/rpm/RPMS/i586: El directorio donde
                                                     ✔
       empaquetado           para     otras              se almacenarán los paquetes rpm
       distribuciones)                                   para procesadores i586.
       Una vez instalado el paquete, éste                ~/rpm/RPMS/x86_64: El directorio
   ✔                                                 ✔
       permitirá incluir los distintos números           donde se almacenarán los paquetes
       de la revista Atix en el menú de                  rpm para procesadores AMD64.
       aplicaciones/educación,        lo   que
                                                         ~/rpm/RPMS/noarch: El directorio
                                                     ✔
       facilitará el acceso directo a cada uno
                                                         donde se almacenarán los paquetes
       de los números de la revista
                                                         rpm que sean independientes de la
                                                         arquitectura del procesador.
Detalles de la creación de                               ~/rpm/SOURCES: Los ficheros de
                                                     ✔
paquetes                                                 código fuente (mipaquete.tar.bz2, por
                                                         ejemplo).
A continuacón detallamos la creación de
                                                         ~/rpm/SPECS: Los ficheros de
                                                     ✔
paquetes.
                                                         especificaciones que tendremos que
                                                         construir.
Estructura de directorios                                ~/rpm/SRPMS: El rpm de código
                                                     ✔
                                                         fuente tras su construcción.
Para construir paquetes, el primer elemento
importante es crear una estructura de                    ~/rpm/tmp: Para cosas temporales
                                                     ✔
directorios adecuada a tal efecto, de tal forma          que rpm creará cuando construya sus
que esta estructura nos permita mantener                 paquetes.
orden y control sobre todos y cada uno de los
Archivo .rpmmacros
Un segundo elemento importante dentro la creación de paquetes es el archivo .rpmmacros, que
contiene una serie de parámetros de configuración que serán considerados al momento de
crear el paquete. En caso de no existir este archivo se tomará lo parámetros y ubicaciones por
defecto de la distribución
El contenido básico de este archivo, podría ser el que mostramos a continuación
~/.rpmmacros
# Descripcion del Path del paquete
%_topdir                %(echo $HOME)/rpm
%_tmppath               %(echo $HOME)/rpm/tmp
# Para que nuestros paquetes sean automáticamente firmados con GPG, incluimos las
siguientes lineas:
%_signature             gpg
%_gpg_name              RevistaAtix
%_gpg_path              ~/.gnupg
# De todas formas el paquete puede ser firmado despues de ser creado, haciendo uso de
la opción rpm --resign

# Detalles del empaquetador, la distribución y el vendedor.
%packager               Esteban Saavedra Lopez <estebansaavedra@yahoo.com>
%distribution           RHEL, CentOS, Fedora, Mandriva, Suse
%vendor                 Revista Atix <http://atix.opentelematics.org>

# Para incluir un subfijo propio en el nombre del paquete
%distsuffix             revista




Firma digital                                     Archivo de especificación
Un tercer elemento importante es la firma         El cuarto elemento importante, el el archivo
digital, con la que firmaremos nuestros           de especificación, que contiene una serie de
paquetes, proveyéndoles la autenticidad           opciones parametrizadas que permitirán
correspondiente.                                  caracterizar el paquete. Este archivo dispone
                                                  de varias secciones como ser:
Generalmente        cuando    instalamos     un
paquete, que no provenga de los repositorios             cabecera:contiene un conjunto de
                                                     ✔
oficiales, el sistema operativo nos alerta que           campos que permiten identificar al
estamos instalando un paquete del cual                   paquete
desconocemos su procedencia y corremos el
                                                         description: contiene una descripción
                                                     ✔
riesgo de instalar software malicioso en
                                                         detallada del paquete
nuestro sistema, por tal razón es conveniente
                                                         %prep:contiene el nombre de los
instalar paquetes que dispondrán de una              ✔
                                                         scripts      necesarios         para
firma digital que garantice su autenticidad.
                                                         desempaquetar y parchar las fuentes
En el número 4 de la revista Atix, publique un
                                                         %build:contiene los comandos para
artículo de como crear una llave pública y           ✔
                                                         construir y compilar los datos ya
privada que sirve para firmar digitalmente
                                                         instalados en el directorio correcto
cualquier documento, sugiero revisar ese
artículo en caso de no conocer como se                   %install:contiene    los    comandos
                                                     ✔
generan llaves para la firma de documentos.              necesarios para     para   realizar la
                                                         instalación
Para nuestro ejemplo asumimos que
tenemos creado una llave GPG llamada                     %files:contiene el detalle de los
                                                     ✔
RevistaAtix, con la cual se firmarán nuestros            archivos componentes del paquete.
paquetes.
                                                         %clean: contiene las instrucciones
                                                     ✔
que permiten limpiar los archivos                   %pre: guiones preinstalación
                                                       ✔
       temporales generados
                                                           %post: guiones postinstalación
                                                       ✔
       %config: contiene el listado de los
   ✔
                                                           %preun: guiones predesistalación
                                                       ✔
       ficheros de configuración de un
                                                           %postun: guiones postdesistalación
       paquete                                         ✔

       %doc:Contiene el listado de archivos
   ✔
       de documentación del paquete                Debemos tener presente que no es necesario
                                                   incluir todas las secciones, sino solo las que
       %changelog: contiene el detalle de
   ✔
                                                   se consideren necesarias en cada caso, así
       los diversos cambios hechos al
                                                   como veremos en el ejemplo que
       paquete.
                                                   desarrollamos.
Para una mejor comprensión del contenido de este archivo de especificación presentamos el
desarrollado para nuestro ejemplo, y la explicación del mismo.


Cabecera
Contiene la información básica del paquete (nombre, versión, licencia, requerimiento, ...)
atix.spec
Name: atix
Version: 1.0.1
Release: 1.%{distsuffix}
URL: http://atix.opentelematics.org/
Summary: Numeros de la Revista Atix
License: GPL
Group: Documentation
Source0: atix-1.0.1.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
Requires: evince

%description
atix es un paquete creado por Esteban Saavedra Lopez <jesaavedra@opentelematics.org>.
El objetivo de este paquete es instalar los distintos numeros publicados de la Revista
de Software Libre Atix, y peridodicamente poseer actualizaciones que vayan incluyendo
los distintos numeros segun se vayan liberando.

Más información en: <http://atix.opentelematics.org>


En nuestro ejemplo el archivo atix-1.0.1.tar.bz2 , contiene todos los archivos del paquete
(archivos .pdf de la revista, archivos .xpm de iconos, archivos .desktop de entradas al menú y
los archivos de documentación)


%prep
Contiene el nombre de los scripts necesarios para desempaquetar y parchar las fuentes . En
nuestro caso realizará la descompresión de los archivos fuente (source 0)
%prep
%setup -q -a 0


%install
Contiene los comandos necesarios para realizar la instalación ; incluyendo la creación de
directorios en caso de no existir (-D), los atributos de los archivos (-m) y las ubicaciones donde
se instalarán/copiarán los archivos contenidos en el paquete.
atix.spec (continuación)
%install
rm -rf $RPM_BUILD_ROOT
install -D -m 644 atix01.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix01.pdf
install -D -m 644 atix02.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix02.pdf
install -D -m 644 atix03.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix03.pdf
install -D -m 644 atix04.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix04.pdf
install -D -m 644 atix05.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix05.pdf
install -D -m 644 atix06.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix06.pdf
install -D -m 644 LEAME $RPM_BUILD_ROOT/usr/share/RevistaAtix/LEAME
install -D -m 644 TODO $RPM_BUILD_ROOT/usr/share/RevistaAtix/TODO
install -D -m 644 COPYING $RPM_BUILD_ROOT/usr/share/RevistaAtix/COPYING
install -D -m 644 ChangeLog $RPM_BUILD_ROOT/usr/share/RevistaAtix/ChangeLog
install -D -m 644 atix01.desktop $RPM_BUILD_ROOT/usr/share/applications/atix01.desktop
install -D -m 644 atix02.desktop $RPM_BUILD_ROOT/usr/share/applications/atix02.desktop
install -D -m 644 atix03.desktop $RPM_BUILD_ROOT/usr/share/applications/atix03.desktop
install -D -m 644 atix04.desktop $RPM_BUILD_ROOT/usr/share/applications/atix04.desktop
install -D -m 644 atix05.desktop $RPM_BUILD_ROOT/usr/share/applications/atix05.desktop
install -D -m 644 atix06.desktop $RPM_BUILD_ROOT/usr/share/applications/atix06.desktop
install -D -m 644 atix01.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix01.xpm
install -D -m 644 atix02.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix02.xpm
install -D -m 644 atix03.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix03.xpm
install -D -m 644 atix04.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix04.xpm
install -D -m 644 atix05.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix05.xpm
install -D -m 644 atix06.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix06.xpm


%clean
Contiene las instrucciones que permiten limpiar los archivos temporales generados
atix.spec (continuación)
%clean
rm -rf $RPM_BUILD_ROOT


%files
Contiene el detalle (atributos, ubicación) de todos los archivos componentes del paquete.
atix.spec (continuación)
%files
%defattr(0644,root,root)
/usr/share/RevistaAtix/atix01.pdf
/usr/share/RevistaAtix/atix02.pdf
/usr/share/RevistaAtix/atix03.pdf
/usr/share/RevistaAtix/atix04.pdf
/usr/share/RevistaAtix/atix05.pdf
/usr/share/RevistaAtix/atix06.pdf
/usr/share/RevistaAtix/LEAME
/usr/share/RevistaAtix/TODO
/usr/share/RevistaAtix/COPYING
/usr/share/RevistaAtix/ChangeLog
/usr/share/applications/atix01.desktop
/usr/share/applications/atix02.desktop
/usr/share/applications/atix03.desktop
/usr/share/applications/atix04.desktop
/usr/share/applications/atix05.desktop
/usr/share/applications/atix06.desktop
/usr/share/pixmaps/atix01.xpm
/usr/share/pixmaps/atix02.xpm
/usr/share/pixmaps/atix03.xpm
/usr/share/pixmaps/atix04.xpm
/usr/share/pixmaps/atix05.xpm
/usr/share/pixmaps/atix06.xpm


%doc
Contiene el listado de archivos de documentación del paquete, éstos se instalarán en
/usr/share/doc/$NOMBRE­$VERSIÓN
atix.spec (continuación)
%doc LEAME TODO COPYING ChangeLog


%changelog
Contiene el detalle de los diversos cambios hechos al paquete.
atix.spec (continuación)
%changelog
* Wed Jan 7 2009 Esteban Saavedra Lopez <http://jesaavedra.opentelematics.org>
- Reempaquetado del paquete atix
- El paquete contiene los primeros 6 numeros de la revista Atix.
- Modificacion del archivo spec
* Tue Jan 6 2009 Esteban Saavedra Lopez <http://jesaavedra.opentelematics.org>
- Inicio del empaquetado del paquete atix
- El paquete solo contenia el primer numero de la revista Atix, por temas de prueba
- Creacion inicial del archivo spec


Creación del paquete
Una vez que se tiene la estructura de directorios adecuada, la firma digital, el fichero
.rpmmacros, el archivo .SPEC, los archivos fuentes del paquete; podemos proceder a crear el
paquete, como se muestra en la figura siguiente:
Detalles del paquete creado




                      Información del paquete




                   Listado de archivos del paquete
Instalación del paquete
Cuando procedemos a instalar un paquete que no tenga una firma digital el sistema operativo
nos advierte de éste echo como muestra la figura.




Por eso es conveniente instalar paquetes que dispongan de una firma digital que garantice su
autenticidad, en nuestro caso primero procedemos a importar la llave como muestra la figura




y luego procedemos a instalar el paquete, donde observaremos que el sistema operativo ya no
muestra la advertencia anteriormente vista.




Demostración del paquete instalado
Uno de los objetivos que teníamos, era que después de instalado el paquete creado, éste
permita el acceso desde el menú de aplicaciones a todos y cada uno de los números de la
Revista Atix; esto se logra con ayuda de los archivos atix01.desktop, ..atix06.desktop. El
contenido de uno de estos archivos es el mostrado a continuación:
atix01.desktop
[Desktop Entry]
Name=Revista Atix No 1
Comment=Revista de Software Libre Atix No 1
Categories=Education;
Encoding=UTF-8
Exec=evince /usr/share/RevistaAtix/atix01.pdf
Icon=atix01
StartupNotify=true
Terminal=false
Type=Application
La siguiente figura muestra como se ve el menú aplicaciones, incluyendo las opciones referidas
a cada número de la revista.




Trabajo futuro
Un trabajo que se debería realizar es la creación de un repositorio público en Internet, que
permita      a     cualquier   usuario    poder     instalar   y   actualizar    el   paquete
atix-1.0.1-1.revista.noarch.rpm, haciendo uso del gestor de paquetes yum y referenciado por un
archivo atix.repo (para el caso de RHEL, CentOs, Fedora)


Referencias
[1]    http://www.rpm.org/
[2]    http://es.wikipedia.com


Autor




Esteban Saavedra López
Líder de la Comunidad ATIX (Oruro – Bolivia)
Activista de Software Libre en Bolivia
jesaavedra@opentelematics.org
http://jesaavedra.opentelematics.org

More Related Content

Viewers also liked

Chocolates Febrero 2008
Chocolates Febrero 2008Chocolates Febrero 2008
Chocolates Febrero 2008guest1dc00b
 
El Desafío de la Innovación
El Desafío de la InnovaciónEl Desafío de la Innovación
El Desafío de la InnovaciónEduardo Remolins
 
Docum. inicial de HMC
Docum. inicial de HMCDocum. inicial de HMC
Docum. inicial de HMCsmerino
 
Turismo de las americas urchitano gassire
Turismo de las americas urchitano gassireTurismo de las americas urchitano gassire
Turismo de las americas urchitano gassireSergio Blanché
 
Mii Diiaposiitiiva.
Mii Diiaposiitiiva.Mii Diiaposiitiiva.
Mii Diiaposiitiiva.guest8fb323
 
Ay g sensor de detonación o golpeteo (ks)
Ay g sensor de detonación o golpeteo (ks)Ay g sensor de detonación o golpeteo (ks)
Ay g sensor de detonación o golpeteo (ks)Jeronimo Valenzuela
 
Utopien Web20 Version April2009
Utopien Web20 Version April2009Utopien Web20 Version April2009
Utopien Web20 Version April2009davidroethler
 
YP-K5 Benutzerhandbuch von Samsung
YP-K5 Benutzerhandbuch von SamsungYP-K5 Benutzerhandbuch von Samsung
YP-K5 Benutzerhandbuch von Samsungmarco678
 
Mas Fotos De La Prom Xiv
Mas Fotos De La Prom XivMas Fotos De La Prom Xiv
Mas Fotos De La Prom Xivrxavier
 
Bildung In Second Life
Bildung In Second LifeBildung In Second Life
Bildung In Second LifeMichael Lange
 
1.9.4 Usuario Alumno
1.9.4 Usuario Alumno1.9.4 Usuario Alumno
1.9.4 Usuario AlumnoVicente Ruiz
 
Gesund leben mit Medien
Gesund leben mit MedienGesund leben mit Medien
Gesund leben mit MedienMichael Lange
 

Viewers also liked (20)

Proyecto Itinere 1337
Proyecto Itinere 1337Proyecto Itinere 1337
Proyecto Itinere 1337
 
Chocolates Febrero 2008
Chocolates Febrero 2008Chocolates Febrero 2008
Chocolates Febrero 2008
 
El Desafío de la Innovación
El Desafío de la InnovaciónEl Desafío de la Innovación
El Desafío de la Innovación
 
Docum. inicial de HMC
Docum. inicial de HMCDocum. inicial de HMC
Docum. inicial de HMC
 
Facebook juni 2010
Facebook juni 2010Facebook juni 2010
Facebook juni 2010
 
Turismo de las americas urchitano gassire
Turismo de las americas urchitano gassireTurismo de las americas urchitano gassire
Turismo de las americas urchitano gassire
 
MULTIMEDIA
MULTIMEDIAMULTIMEDIA
MULTIMEDIA
 
Mii Diiaposiitiiva.
Mii Diiaposiitiiva.Mii Diiaposiitiiva.
Mii Diiaposiitiiva.
 
Curso de Introducción al Estándar Internacional ISO/IEC 29110
Curso de Introducción al Estándar Internacional ISO/IEC 29110Curso de Introducción al Estándar Internacional ISO/IEC 29110
Curso de Introducción al Estándar Internacional ISO/IEC 29110
 
Grammatik
GrammatikGrammatik
Grammatik
 
Ay g sensor de detonación o golpeteo (ks)
Ay g sensor de detonación o golpeteo (ks)Ay g sensor de detonación o golpeteo (ks)
Ay g sensor de detonación o golpeteo (ks)
 
Utopien Web20 Version April2009
Utopien Web20 Version April2009Utopien Web20 Version April2009
Utopien Web20 Version April2009
 
YP-K5 Benutzerhandbuch von Samsung
YP-K5 Benutzerhandbuch von SamsungYP-K5 Benutzerhandbuch von Samsung
YP-K5 Benutzerhandbuch von Samsung
 
Mas Fotos De La Prom Xiv
Mas Fotos De La Prom XivMas Fotos De La Prom Xiv
Mas Fotos De La Prom Xiv
 
Bildung In Second Life
Bildung In Second LifeBildung In Second Life
Bildung In Second Life
 
Informationsbeschaffung für BW
Informationsbeschaffung für BWInformationsbeschaffung für BW
Informationsbeschaffung für BW
 
San Fernando
San FernandoSan Fernando
San Fernando
 
1.9.4 Usuario Alumno
1.9.4 Usuario Alumno1.9.4 Usuario Alumno
1.9.4 Usuario Alumno
 
Gesund leben mit Medien
Gesund leben mit MedienGesund leben mit Medien
Gesund leben mit Medien
 
Graham gercken
Graham gerckenGraham gercken
Graham gercken
 

Similar to Empaquetando nuestras aplicaciones para distribuirlas

Rpm - Gestor de Paquetes Linux
Rpm - Gestor de Paquetes LinuxRpm - Gestor de Paquetes Linux
Rpm - Gestor de Paquetes LinuxEsteban Saavedra
 
10 administración de paquetes rpm
10  administración de paquetes rpm10  administración de paquetes rpm
10 administración de paquetes rpmAprende Viendo
 
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4taylerx
 
Creando un repositorio local en Ubuntu
Creando un repositorio local en UbuntuCreando un repositorio local en Ubuntu
Creando un repositorio local en UbuntuJuan Vladimir
 
Presentacion de informatica
Presentacion de informatica Presentacion de informatica
Presentacion de informatica AlejandraLisbeth
 
Amanda: una forma sencilla de implementar un sistema de respaldos
Amanda:       una    forma sencilla de implementar un sistema de respaldosAmanda:       una    forma sencilla de implementar un sistema de respaldos
Amanda: una forma sencilla de implementar un sistema de respaldosEsteban Saavedra
 
Instalacion desantendida en red mediante directivas de grupo.
Instalacion desantendida en red mediante directivas de grupo.Instalacion desantendida en red mediante directivas de grupo.
Instalacion desantendida en red mediante directivas de grupo.Rosariio92
 
Copia De Respaldo De La Informacion
Copia De Respaldo De La InformacionCopia De Respaldo De La Informacion
Copia De Respaldo De La Informacionsoloyo32
 
Ventajas de Debian GNU/Linux
Ventajas de Debian GNU/LinuxVentajas de Debian GNU/Linux
Ventajas de Debian GNU/LinuxAndy Messi
 

Similar to Empaquetando nuestras aplicaciones para distribuirlas (20)

Rpm - Gestor de Paquetes Linux
Rpm - Gestor de Paquetes LinuxRpm - Gestor de Paquetes Linux
Rpm - Gestor de Paquetes Linux
 
10 administración de paquetes rpm
10  administración de paquetes rpm10  administración de paquetes rpm
10 administración de paquetes rpm
 
10 administración de paquetes rpm
10  administración de paquetes rpm10  administración de paquetes rpm
10 administración de paquetes rpm
 
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Funkschau 2013-español
Funkschau 2013-españolFunkschau 2013-español
Funkschau 2013-español
 
Debian
DebianDebian
Debian
 
Creando un repositorio local en Ubuntu
Creando un repositorio local en UbuntuCreando un repositorio local en Ubuntu
Creando un repositorio local en Ubuntu
 
Debian
DebianDebian
Debian
 
Presentacion de informatica
Presentacion de informatica Presentacion de informatica
Presentacion de informatica
 
Amanda: una forma sencilla de implementar un sistema de respaldos
Amanda:       una    forma sencilla de implementar un sistema de respaldosAmanda:       una    forma sencilla de implementar un sistema de respaldos
Amanda: una forma sencilla de implementar un sistema de respaldos
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Ricardo montenegro
Ricardo montenegroRicardo montenegro
Ricardo montenegro
 
Portage2
Portage2Portage2
Portage2
 
Portage2
Portage2Portage2
Portage2
 
Módulo 5 IC3
Módulo 5 IC3Módulo 5 IC3
Módulo 5 IC3
 
Instalacion desantendida en red mediante directivas de grupo.
Instalacion desantendida en red mediante directivas de grupo.Instalacion desantendida en red mediante directivas de grupo.
Instalacion desantendida en red mediante directivas de grupo.
 
Copia De Respaldo De La Informacion
Copia De Respaldo De La InformacionCopia De Respaldo De La Informacion
Copia De Respaldo De La Informacion
 
Ventajas de Debian GNU/Linux
Ventajas de Debian GNU/LinuxVentajas de Debian GNU/Linux
Ventajas de Debian GNU/Linux
 

More from Esteban Saavedra (20)

Atix30
Atix30Atix30
Atix30
 
Atix29
Atix29Atix29
Atix29
 
Atix28
Atix28Atix28
Atix28
 
Atix27
Atix27Atix27
Atix27
 
Atix26
Atix26Atix26
Atix26
 
Atix25
Atix25Atix25
Atix25
 
Rabbitmq
RabbitmqRabbitmq
Rabbitmq
 
Ansible
AnsibleAnsible
Ansible
 
Perl
PerlPerl
Perl
 
Atix24
Atix24Atix24
Atix24
 
Atix23
Atix23Atix23
Atix23
 
Lineas Base Migracion a Software Libre
Lineas Base Migracion a Software LibreLineas Base Migracion a Software Libre
Lineas Base Migracion a Software Libre
 
Seguridad Sistemas de Gobierno
Seguridad Sistemas de GobiernoSeguridad Sistemas de Gobierno
Seguridad Sistemas de Gobierno
 
Tunneling: Esquivando Restricciones de Proxies y Firewalls
Tunneling: Esquivando Restricciones de Proxies y FirewallsTunneling: Esquivando Restricciones de Proxies y Firewalls
Tunneling: Esquivando Restricciones de Proxies y Firewalls
 
Bi Un Modelo Eficiente para Gerenciar Empresas
Bi Un Modelo Eficiente para Gerenciar EmpresasBi Un Modelo Eficiente para Gerenciar Empresas
Bi Un Modelo Eficiente para Gerenciar Empresas
 
Clouds privadas
Clouds privadasClouds privadas
Clouds privadas
 
Introduccion Computacion Ubicua
Introduccion Computacion UbicuaIntroduccion Computacion Ubicua
Introduccion Computacion Ubicua
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Avances Tecnologicos
Avances TecnologicosAvances Tecnologicos
Avances Tecnologicos
 
Dni Electronico Bolivia
Dni Electronico BoliviaDni Electronico Bolivia
Dni Electronico Bolivia
 

Recently uploaded

David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 

Recently uploaded (20)

David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 

Empaquetando nuestras aplicaciones para distribuirlas

  • 1. Empaquetando nuestras aplicaciones para distribuirlas Hoy en día son muchas las personas que se dedican al desarrollo de software, pudiendo ser el desarrollo de aplicaciones completas tanto para escritorio como para Web, o de simples aditamentos o extenciones a una ya desarrollada; éstas personas se ven en la imperiosa necesidad de contar con un medio que les permita distribuir éstas aplicaciones, dentro sus entornos, o hacerlos públicos en Internet para beneficio o conocimiento de otros usuarios. El empaquetar una aplicación representa una de las mejores y más recomendadas formas de distribuir una aplicación a usuarios de cierto entorno, o ponerla a disposición en algún repositorio disponible en Internet. proceso tenga la facilidad de realizarse de forma automática, considerando además sus posibles actualizaciones, parchado de bugs, mantención y acceso a los desarrolladores de la misma. El proceso de empaquetado no es un proceso tan complicado como parece, pero tiene ciertas variantes dependiendo principalmente de la distribución a la cual esta destinada la aplicación. Los paquetes creados consideran básicamente cierta información común (las fuentes, la Introducción arquitectura, la descripción, las dependencias, los requisitos, etc), ésta Muchos cuando empezamos a desarrollar información es contemplada en uno o dos nuestras primeras aplicaciones, para archivos de especificación y/o control en ponerlas en producción o a disposición de ambos casos; archivos que son la principal otros usuarios, generalmente nos limitamos a fuente de descripción y especificación para realizar una simple copia de los programas y futuras regeneraciones del paquete en si. archivos en las máquinas destino; representando todo ésto un proceso Una de las mayores facilidades que provee el laborioso y muchas veces complicado, ya empaquetado de aplicaciones es: su fácil que representa que en muchos casos distribución, actualización y parchado de tengamos que instalar ciertos programas o bugs en algunos casos, tareas, que a la librerías que hacen falta para que nuestra postre se realizan de forma automática, con aplicación funcione correctamente y más aún tan solo poner a disposición los nuevos cuando el software instalado en cada PC paquetes o parches según corresponda. varia de una a otra. Para evitar todo este proceso tedioso, es Elementos de un proceso de recomendable empaquetar nuestras empaquetado aplicaciones, para que el proceso de distribución sea transparente para los Son varios los elementos que se deben usuarios destino, y sobre todo que este considerar al momento de empaquetar una
  • 2. aplicación, entre los más comunes podemos Características denotar: RPM está diseñado para disponer de ✔ La arquitectura destino del paquete ✔ potentes parámetros de consulta. Usted puede hacer búsquedas de El empaquetado de fuentes o binarios ✔ paquetes a lo largo de toda la base de La distribución destino ✔ datos o sólo de ciertos ficheros. Información del paquete, expresada También puede encontrar fácilmente a ✔ mediante directivas (descripción, qué paquete pertenece un fichero y dependencias, etc.) de dónde proviene. Los ficheros RPM en sí mismos son archivos Firma digital del paquete, para ✔ comprimidos, pero puede consultar garantizar la autenticidad del mismo paquetes independientes fácil y En su generalidad esta información es rápidamente, gracias a una cabecera contemplada en los archivos destinados a binaria a medida añadida al paquete especificar y/o controlar el proceso de con toda la información que puede empaquetado en si. necesitar, almacenada sin comprimir. Esto permite consultas rápidas. Formatos de empaquetado y Otra poderosa característica es la ✔ habilidad de verificar paquetes. Si distribución está preocupado por haber borrado algún fichero importante, sólo tiene Por lo general cada distribución tiene su que verificar el paquete. Quedará propia forma de empaquetar sus cumplidamente informado de aplicaciones; pero hoy en día existen dos cualquier anomalía. Si ésto ocurriera, grandes familias que han impuesto podrá reinstalar el paquete si lo supremacía en este tema como son: considera necesario. Cualquier fichero RMP (Redhat Package Manager) de ✔ de configuración que usted tenga la familia de RedHat (RHEL, Fedora, quedará a salvo. CentOS), Mandriva, Suse Deb de la familia de Debian (Debian, ✔ Requisitos Ubuntu, y derivados). Al momento de empaquetar una aplicación, se precisa tener instalados los siguientes RPM paquetes: RPM es el gestor de paquetes de Red Hat rpm-build ✔ (Red Hat Package Manager). Aunque rpm-devel ✔ aparece Red Hat en su nombre, la intención es que sea un sistema de empaquetado gnupg ✔ abierto y disponible para el uso de install ✔ cualquiera. Permite a los usuarios tomar el código fuente (source code) y empaquetarlo gcc* ✔ en forma de fuentes y binaria de forma que automake* ✔ los ficheros binarios sean fácilmente instalables y rastreables y las fuentes puedan autoconf* ✔ ser reconstruidas con facilidad. También Todos y cada uno de éstos pueden ser gestiona una base de datos de todos los instalados mediante el gestor de paquetes de paquetes y sus ficheros que puede ser usada la distribución utilizada. para verificar paquetes e interrogarla para obtener información acerca de ficheros y/o paquetes.
  • 3. archivos necesarios para la creación del Creando nuestro paquete paquete, así mismo de los archivos Por tratarse de un artículo que pretende generados. demostrar el empaquetamiento de La estructura recomendada es la siguiente: aplicaciones, su procedimiento y características del mismo y para que se tenga una mejor idea de lo que deseamos hacer, explicaremos el objetivo y las características de nuestro paquete, bajo el siguiente detalle: Crearemos un paquete que incluya ✔ los distintos números de la revista Atix. El paquete dispondrá de ✔ actualizaciones, ésto representa que cada vez que se libere un nuevo número de la revista, también se liberara una actualización del paquete, que obviamente permita contar con el nuevo número de la revista Atix ~/rpm/BUILD: El directorio donde los ✔ El paquete dispondrá de una firma ✔ códigos fuente se construyen. digital, para garantizar la autenticidad del paquete ~/rpm/RPMS: Contiene los ✔ directorios, uno por cada arquitectura, El formato del paquete será un RPM, ✔ que recibirán posteriormente los para distribuciones como RHEL, ficheros binarios compilados. CentOS, Fedora, etc. (en posteriores entregas realizaremos el ~/rpm/RPMS/i586: El directorio donde ✔ empaquetado para otras se almacenarán los paquetes rpm distribuciones) para procesadores i586. Una vez instalado el paquete, éste ~/rpm/RPMS/x86_64: El directorio ✔ ✔ permitirá incluir los distintos números donde se almacenarán los paquetes de la revista Atix en el menú de rpm para procesadores AMD64. aplicaciones/educación, lo que ~/rpm/RPMS/noarch: El directorio ✔ facilitará el acceso directo a cada uno donde se almacenarán los paquetes de los números de la revista rpm que sean independientes de la arquitectura del procesador. Detalles de la creación de ~/rpm/SOURCES: Los ficheros de ✔ paquetes código fuente (mipaquete.tar.bz2, por ejemplo). A continuacón detallamos la creación de ~/rpm/SPECS: Los ficheros de ✔ paquetes. especificaciones que tendremos que construir. Estructura de directorios ~/rpm/SRPMS: El rpm de código ✔ fuente tras su construcción. Para construir paquetes, el primer elemento importante es crear una estructura de ~/rpm/tmp: Para cosas temporales ✔ directorios adecuada a tal efecto, de tal forma que rpm creará cuando construya sus que esta estructura nos permita mantener paquetes. orden y control sobre todos y cada uno de los
  • 4. Archivo .rpmmacros Un segundo elemento importante dentro la creación de paquetes es el archivo .rpmmacros, que contiene una serie de parámetros de configuración que serán considerados al momento de crear el paquete. En caso de no existir este archivo se tomará lo parámetros y ubicaciones por defecto de la distribución El contenido básico de este archivo, podría ser el que mostramos a continuación ~/.rpmmacros # Descripcion del Path del paquete %_topdir %(echo $HOME)/rpm %_tmppath %(echo $HOME)/rpm/tmp # Para que nuestros paquetes sean automáticamente firmados con GPG, incluimos las siguientes lineas: %_signature gpg %_gpg_name RevistaAtix %_gpg_path ~/.gnupg # De todas formas el paquete puede ser firmado despues de ser creado, haciendo uso de la opción rpm --resign # Detalles del empaquetador, la distribución y el vendedor. %packager Esteban Saavedra Lopez <estebansaavedra@yahoo.com> %distribution RHEL, CentOS, Fedora, Mandriva, Suse %vendor Revista Atix <http://atix.opentelematics.org> # Para incluir un subfijo propio en el nombre del paquete %distsuffix revista Firma digital Archivo de especificación Un tercer elemento importante es la firma El cuarto elemento importante, el el archivo digital, con la que firmaremos nuestros de especificación, que contiene una serie de paquetes, proveyéndoles la autenticidad opciones parametrizadas que permitirán correspondiente. caracterizar el paquete. Este archivo dispone de varias secciones como ser: Generalmente cuando instalamos un paquete, que no provenga de los repositorios cabecera:contiene un conjunto de ✔ oficiales, el sistema operativo nos alerta que campos que permiten identificar al estamos instalando un paquete del cual paquete desconocemos su procedencia y corremos el description: contiene una descripción ✔ riesgo de instalar software malicioso en detallada del paquete nuestro sistema, por tal razón es conveniente %prep:contiene el nombre de los instalar paquetes que dispondrán de una ✔ scripts necesarios para firma digital que garantice su autenticidad. desempaquetar y parchar las fuentes En el número 4 de la revista Atix, publique un %build:contiene los comandos para artículo de como crear una llave pública y ✔ construir y compilar los datos ya privada que sirve para firmar digitalmente instalados en el directorio correcto cualquier documento, sugiero revisar ese artículo en caso de no conocer como se %install:contiene los comandos ✔ generan llaves para la firma de documentos. necesarios para para realizar la instalación Para nuestro ejemplo asumimos que tenemos creado una llave GPG llamada %files:contiene el detalle de los ✔ RevistaAtix, con la cual se firmarán nuestros archivos componentes del paquete. paquetes. %clean: contiene las instrucciones ✔
  • 5. que permiten limpiar los archivos %pre: guiones preinstalación ✔ temporales generados %post: guiones postinstalación ✔ %config: contiene el listado de los ✔ %preun: guiones predesistalación ✔ ficheros de configuración de un %postun: guiones postdesistalación paquete ✔ %doc:Contiene el listado de archivos ✔ de documentación del paquete Debemos tener presente que no es necesario incluir todas las secciones, sino solo las que %changelog: contiene el detalle de ✔ se consideren necesarias en cada caso, así los diversos cambios hechos al como veremos en el ejemplo que paquete. desarrollamos. Para una mejor comprensión del contenido de este archivo de especificación presentamos el desarrollado para nuestro ejemplo, y la explicación del mismo. Cabecera Contiene la información básica del paquete (nombre, versión, licencia, requerimiento, ...) atix.spec Name: atix Version: 1.0.1 Release: 1.%{distsuffix} URL: http://atix.opentelematics.org/ Summary: Numeros de la Revista Atix License: GPL Group: Documentation Source0: atix-1.0.1.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot Requires: evince %description atix es un paquete creado por Esteban Saavedra Lopez <jesaavedra@opentelematics.org>. El objetivo de este paquete es instalar los distintos numeros publicados de la Revista de Software Libre Atix, y peridodicamente poseer actualizaciones que vayan incluyendo los distintos numeros segun se vayan liberando. Más información en: <http://atix.opentelematics.org> En nuestro ejemplo el archivo atix-1.0.1.tar.bz2 , contiene todos los archivos del paquete (archivos .pdf de la revista, archivos .xpm de iconos, archivos .desktop de entradas al menú y los archivos de documentación) %prep Contiene el nombre de los scripts necesarios para desempaquetar y parchar las fuentes . En nuestro caso realizará la descompresión de los archivos fuente (source 0) %prep %setup -q -a 0 %install Contiene los comandos necesarios para realizar la instalación ; incluyendo la creación de directorios en caso de no existir (-D), los atributos de los archivos (-m) y las ubicaciones donde se instalarán/copiarán los archivos contenidos en el paquete.
  • 6. atix.spec (continuación) %install rm -rf $RPM_BUILD_ROOT install -D -m 644 atix01.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix01.pdf install -D -m 644 atix02.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix02.pdf install -D -m 644 atix03.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix03.pdf install -D -m 644 atix04.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix04.pdf install -D -m 644 atix05.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix05.pdf install -D -m 644 atix06.pdf $RPM_BUILD_ROOT/usr/share/RevistaAtix/atix06.pdf install -D -m 644 LEAME $RPM_BUILD_ROOT/usr/share/RevistaAtix/LEAME install -D -m 644 TODO $RPM_BUILD_ROOT/usr/share/RevistaAtix/TODO install -D -m 644 COPYING $RPM_BUILD_ROOT/usr/share/RevistaAtix/COPYING install -D -m 644 ChangeLog $RPM_BUILD_ROOT/usr/share/RevistaAtix/ChangeLog install -D -m 644 atix01.desktop $RPM_BUILD_ROOT/usr/share/applications/atix01.desktop install -D -m 644 atix02.desktop $RPM_BUILD_ROOT/usr/share/applications/atix02.desktop install -D -m 644 atix03.desktop $RPM_BUILD_ROOT/usr/share/applications/atix03.desktop install -D -m 644 atix04.desktop $RPM_BUILD_ROOT/usr/share/applications/atix04.desktop install -D -m 644 atix05.desktop $RPM_BUILD_ROOT/usr/share/applications/atix05.desktop install -D -m 644 atix06.desktop $RPM_BUILD_ROOT/usr/share/applications/atix06.desktop install -D -m 644 atix01.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix01.xpm install -D -m 644 atix02.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix02.xpm install -D -m 644 atix03.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix03.xpm install -D -m 644 atix04.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix04.xpm install -D -m 644 atix05.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix05.xpm install -D -m 644 atix06.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/atix06.xpm %clean Contiene las instrucciones que permiten limpiar los archivos temporales generados atix.spec (continuación) %clean rm -rf $RPM_BUILD_ROOT %files Contiene el detalle (atributos, ubicación) de todos los archivos componentes del paquete. atix.spec (continuación) %files %defattr(0644,root,root) /usr/share/RevistaAtix/atix01.pdf /usr/share/RevistaAtix/atix02.pdf /usr/share/RevistaAtix/atix03.pdf /usr/share/RevistaAtix/atix04.pdf /usr/share/RevistaAtix/atix05.pdf /usr/share/RevistaAtix/atix06.pdf /usr/share/RevistaAtix/LEAME /usr/share/RevistaAtix/TODO /usr/share/RevistaAtix/COPYING /usr/share/RevistaAtix/ChangeLog /usr/share/applications/atix01.desktop /usr/share/applications/atix02.desktop /usr/share/applications/atix03.desktop /usr/share/applications/atix04.desktop /usr/share/applications/atix05.desktop /usr/share/applications/atix06.desktop /usr/share/pixmaps/atix01.xpm /usr/share/pixmaps/atix02.xpm /usr/share/pixmaps/atix03.xpm /usr/share/pixmaps/atix04.xpm
  • 7. /usr/share/pixmaps/atix05.xpm /usr/share/pixmaps/atix06.xpm %doc Contiene el listado de archivos de documentación del paquete, éstos se instalarán en /usr/share/doc/$NOMBRE­$VERSIÓN atix.spec (continuación) %doc LEAME TODO COPYING ChangeLog %changelog Contiene el detalle de los diversos cambios hechos al paquete. atix.spec (continuación) %changelog * Wed Jan 7 2009 Esteban Saavedra Lopez <http://jesaavedra.opentelematics.org> - Reempaquetado del paquete atix - El paquete contiene los primeros 6 numeros de la revista Atix. - Modificacion del archivo spec * Tue Jan 6 2009 Esteban Saavedra Lopez <http://jesaavedra.opentelematics.org> - Inicio del empaquetado del paquete atix - El paquete solo contenia el primer numero de la revista Atix, por temas de prueba - Creacion inicial del archivo spec Creación del paquete Una vez que se tiene la estructura de directorios adecuada, la firma digital, el fichero .rpmmacros, el archivo .SPEC, los archivos fuentes del paquete; podemos proceder a crear el paquete, como se muestra en la figura siguiente:
  • 8. Detalles del paquete creado Información del paquete Listado de archivos del paquete
  • 9. Instalación del paquete Cuando procedemos a instalar un paquete que no tenga una firma digital el sistema operativo nos advierte de éste echo como muestra la figura. Por eso es conveniente instalar paquetes que dispongan de una firma digital que garantice su autenticidad, en nuestro caso primero procedemos a importar la llave como muestra la figura y luego procedemos a instalar el paquete, donde observaremos que el sistema operativo ya no muestra la advertencia anteriormente vista. Demostración del paquete instalado Uno de los objetivos que teníamos, era que después de instalado el paquete creado, éste permita el acceso desde el menú de aplicaciones a todos y cada uno de los números de la Revista Atix; esto se logra con ayuda de los archivos atix01.desktop, ..atix06.desktop. El contenido de uno de estos archivos es el mostrado a continuación: atix01.desktop [Desktop Entry] Name=Revista Atix No 1 Comment=Revista de Software Libre Atix No 1 Categories=Education; Encoding=UTF-8 Exec=evince /usr/share/RevistaAtix/atix01.pdf Icon=atix01 StartupNotify=true Terminal=false Type=Application
  • 10. La siguiente figura muestra como se ve el menú aplicaciones, incluyendo las opciones referidas a cada número de la revista. Trabajo futuro Un trabajo que se debería realizar es la creación de un repositorio público en Internet, que permita a cualquier usuario poder instalar y actualizar el paquete atix-1.0.1-1.revista.noarch.rpm, haciendo uso del gestor de paquetes yum y referenciado por un archivo atix.repo (para el caso de RHEL, CentOs, Fedora) Referencias [1] http://www.rpm.org/ [2] http://es.wikipedia.com Autor Esteban Saavedra López Líder de la Comunidad ATIX (Oruro – Bolivia) Activista de Software Libre en Bolivia jesaavedra@opentelematics.org http://jesaavedra.opentelematics.org