OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
Clase de empaquetado rpm. Parte 1 - Inicio, configuración y conceptos.
Veamos algunos puntos para poder empezar a empaquetar.
1. Lo primero es crear un fichero llamado .rpmmacros en nuestro ~/ con el siguiente contenido:
%_topdir %(echo $HOME)/rpm %_tmppath %(echo $HOME)/rpm/tmp
# Si desea que sus paquetes sean automáticamente firmados con GPG, añada estas # tres líneas cambiando 'Mandrivalinux' por su nombre GPG. También puede usar # rpm --resign para firmarlos posteriormente. #%_signature gpg #%_gpg_name Mandrivalinux #%_gpg_path ~/.gnupg
# Agregue su nombre y dirección de correo electrónico en el campo %packager. # Puede que también desee cambiar 'vendor' por usted mismo.
%packager ponga-su-nombre-aquí <ponga-su-correo-aquí> %distribution Mandriva Linux #%vendor Mandriva %vendor BDK-packagers
# Si desea que sus paquetes tengan su propio sufijo de distribución en lugar
# de mdv, anotelo aquí
%distsuffix bdk
Nota de Katnatek
Actualmente solo se esta empaquetando para Mageia la linea distribution cambia a
%distribution Mageia Linux
Para versiones anteriores a MGA6 la linea distsuffix era
%distsuffix bdk.mga
Para MGA6 y MGA7 la linea distsuffix cambia a
%dist bdk.mga%{distro_release}
Para MGA8 y posteriores la linea distsuffix cambia a
%dist bdk_mga%{distro_release}
Fin de la nota
Creo que no hay necesidad de explicar, solo comentar que el que uso yo es exactamente este, simplemente agrego mi nombre y correo en la linea:
%packager ponga-su-nombre-aquí <ponga-su-correo-aquí>
Obs: "~/" es es directorio de usuario dentro de /home, se puede crear el archivo con "touch ~/.rpmmacros".
Ya que es un simple archivo de texto se lo puede editar con kwrite, gedit, kate, o cualquier editor de texto.
2. Crear el árbol de directorio en nuestro ~/:
Con rpmbuild necesitamos una "jaula" para empaquetar, esta "jaula" será creada en nuestro ~/ y trabajaremos en ella como user normal, nunca como root.
Para crear el árbol de directorio basta con pegar esto en consola:
mkdir -p ~/rpm/{BUILD,RPMS/i586,RPMS/x86_64,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}
Para empaquetar se necesitan al menos 2 ficheros, el SPEC y el tarball con el código fuente.
El fichero SPEC generalmente se lo nombra como el programa p.e.: programa-2.0.spec,y se lo guarda en ~/rpm/SPECS,
este fichero es el que editamos para empaquetar ya que NUNCA SE DEBE TOCAR EL TARBALL CON EL CÓDIGO FUENTE.
El spec es el que "dice" como, cuando y donde se va a compilar e instalar el programa.
El tarball(puede ser más de uno) con el código fuente, patches y cualquier otro archivo necesario se guardarán en ~/rpm/SOURCES
Aclaraciones para este punto:
El rpmbuild simula una instalación, por esto no usamos ROOT y si un usuario común.
Pueden crear un usuario nuevo para empaquetar o usar el que ya tienen.
3. Necesitamos instalar algunos paquetes básicos para poder empaquetar, ellos son:
rpm-build rpmlint task-c++-devel task-c-devel
A medida que intentemos empaquetar veremos que cada paquete en el que trabajemos va a necesitar unos cuantos megas más en dependencias.
Conclusión:
Necesitamos crear un fichero ~/.rpmmacros, un árbol de directorio en nuestro ~/, instalar rpm-build rpmlint task-c++-devel task-c-devel.
Tener solo repos oficiales configurados(nada de kde no oficial, nada de mib!!)
Nunca tocar el tarball que vamos a trabajar, todas las modificaciones se van a hacer en el fichero spec y/o por patches.
El .rpmmacros que uso esta en http://groups.google.com/group/bdk-packagers/files,
también esta allí los primeros ficheros spec y el log de la primer clase de empaquetado en el canal de irc, con el nombre de log-irc.txt
Sobre esta clase:
Se esta tratando de hacer esto lo más fácil posible, ahora se viene Mageia y necesitaremos unos cuantos packagers.
Este texto es un leve modificación de http://blogdrake.net/pipermail/packagers_blogdrake.net/2010-September/002012.html
Cualquier pregunta debe hacerse en la lista, respondiendo al thread de la clase, no pregunten en este hilo.
Respuestas a las preguntas frecuentes:
¿Como será el .rpmmacros para empaquetar para Mageia?
No ver las notas añadidas en la parte inicial.
¿Blogdrake seguirá como repo aparte?
Si, aunque empaquetemos para Mageia siempre tendremos nuestro repo para seguir ayudando a los que quieran aprender.
¿Cuáles son los repositorios que hay que instalar (main, contrib, etc.)?
Los oficiales + PLF, los que se agregan con easyurpmi :D
¿Se puede usar un sistema virtualizado para empaquetar, virtualbox, qemu..?
Si, no hay ningún problema.
Links:
Mageia
https://wiki.mageia.org/en/Packaging_for_beginners
https://wiki.mageia.org/en/Packagers_Howto_start
https://wiki.mageia.org/en/Packaging_guidelines
https://wiki.mageia.org/en/Policies_review
https://wiki.mageia.org/en/RPM_Specfile_policy
https://wiki.mageia.org/en/Packagers_RPM_tutorial
https://wiki.mageia.org/en/RPM_groups_policy
https://wiki.mageia.org/en/Packaging_hints
https://wiki.mageia.org/en/Becoming_a_Mageia_Packager
- Blog de will
- Entra a tu cuenta o crea una para poder comentar.
BOFH
# 108196 Añadido a la Doc, gracias
Añadido a la Doc, gracias Will
Saludos
Muy Suyo
Her DoctorBOFH
Usuario
# 108227 Buen post!!!
que buen post.-
Marvin Martinez
Mandriva 2010.2 + kde 4.4.5
Usuario
# 108295 Estupenda explicación
Gracias por tu esfuerzo.
Muy instructivo y útil.
Saludos.
Usuario
# 108306 ...
¡Qué buena idea la de estas clases!.
A ver si así voy entendiendo algo, de momento esta primera lección ya me la sé y ya he hecho los deberes, es decir instalar todo lo necesario.
BOFH
# 113165 Bien
Estoy volviendo a repasar estas notas, me han sido siempre de mucha ayuda para crear rpm's
The odds are with you!!