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.
Cómo construir un paquete RPM firmado con clave GPG
1. Motivación y Objetivo
Hace tiempo que deseaba aprender a construir rpm específicos para Mandriva. Y en el hilo http://blogdrake.net/node/7667 owl comentó que sus problemas con la multifunción hp acabaron al instalar hplip-1.7.4a. Esa versión del paquete está en cooker, pero no disponible para mdv2007.1. Ésta fue la excusa definitiva.
Describiré detalladamente cómo pueden construirse unos rpm personalizados para Mandriva Linux 2007.1 a partir del paquete hplip-1.7.4a-1mdv2008.0.src.rpm, que está en ftp://gsa10.eps.cdf.udc.es/mandrivalinux/devel/cooker/SRPMS/main/release.
Esto es lo que he hecho y me ha funcionado. Espero que sea de utlidad a los que quieran hacer algo semejante.
Nota: cuando el promp sea $ seré siempre el usuario pealfa.
2. Instalación de los paquetes necesarios
Repositorios main, contrib, main-updates al día.
# urpmi rpm rpm-build spec-helper libtool rpmlint Para satisfacer las dependencias, se instalarán los paquetes siguientes: .......... ¿Efectuar la instalación de los 16 paquetes? (82 MB) (S/n) s ..........
3. Generación del par de claves GPG y exportación
$ gpg --gen-key .......... Por favor seleccione tipo de clave deseado: (1) DSA y ElGamal (por defecto) (2) DSA (sólo firmar) (5) RSA (sólo firmar) Su elección: [ELIJO 1] .......... ¿De qué tamaño quiere la clave? (2048) [INTRO] El tamaño requerido es de 2048 bits Por favor, especifique el período de validez de la clave. 0 = la clave nunca caduca = la clave caduca en n días w = la clave caduca en n semanas m = la clave caduca en n meses y = la clave caduca en n años ¿Validez de la clave (0)? [INTRO] La clave nunca caduca ¿Es correcto? (s/n) s .......... Nombre y apellidos: pealfa Dirección de correo electrónico: [COLOCO UNA DIRECCIÓN DE CORREO AQUÍ] Comentario: [INTRO] Ha seleccionado este ID de usuario: "pealfa " ¿Cambia (N)ombre, (C)omentario, (D)irección o (V)ale/(S)alir? v Necesita una frase contraseña para proteger su clave secreta. [FRASE_SECRETA] .......... pub 1024D/5301C035 2007-06-09 uid pealfa [CORREO] sub 2048g/EE79C171 2007-06-09
Veamos qué hay en mi anillo clave:
$ gpg --list-keys /home/pealfa/.gnupg/pubring.gpg ----------------------------- pub 1024D/5301C035 2007-06-09 uid pealfa [CORREO] sub 2048g/EE79C171 2007-06-09
Todo parece ir bien.
Terminamos exportando la clave pública desde el anillo clave a un fichero de texto:
$ gpg --export -a 'pealfa' > RPM-GPG-KEY-pealfa
4. Creación como usuario de la estructura necesaria
$ mkdir -p ~/rpm/{BUILD,RPMS/i586,RPMS/x86_64,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}
Y creo, también el, el archivo de texto plano .rpmmacros:
$ cat ~/.rpmmacros %_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. Tambien puede usar # rpm --resign para firmarlos posteriormente. En %_gpg_name debe ponerse # el uid (pealfa) o pub (5301C035): %_signature gpg %_gpg_name 5301C035 %_gpg_path ~/.gnupg # Agregue su nombre y dirección de correo electrónico en el campo %packager. # Puede que tambien desee cambiar 'vendor' por usted mismo. %packager Pepe Álvarez [CORREO] %distribution Mandriva Linux %vendor Mandriva # Si desea que sus paquetes tengan su propio sufijo de distribución en lugar # de mdv, anótelo aquí %distsuffix pealfa_mdv
5. Descarga e instalación del SRPM
Ahora descargo en ~/rpm/SRPMS/ el paquete de código fuente que quiero modificar para Mandriva Linux 2007.1, y lo instalo en el árbol ~/rpm:
$ cd ~/rpm/SRPMS/ $ rpm -i hplip-1.7.4a-1mdv2008.0.src.rpm
6. Construcción del rpm y firma
Ahora crearemos el rpm binario (en ~/rpm/RPMS/i586) y el rpm fuente (en ~/rpm/SRPMS/) ejecutando:
$ cd ~/rpm/SPECS $ rpmbuild -ba --sign hplip.spec [pepe@3000xp SPECS]$ rpmbuild -ba --sign hplip.spec Enter pass phrase: Pass phrase is good. error: Failed build dependencies: libsane-devel is needed by hplip-1.7.4a-1pealfa_mdv2007.1.src python-devel is needed by hplip-1.7.4a-1pealfa_mdv2007.1.src net-snmp-devel is needed by hplip-1.7.4a-1pealfa_mdv2007.1.src libusb-devel >= 0.1.8 is needed by hplip-1.7.4a-1pealfa_mdv2007.1.src libcups-devel is needed by hplip-1.7.4a-1pealfa_mdv2007.1.src
Vaya, tendremos que instalar todo eso para obtener nuestro preciado tesoro:
# urpmi libsane-devel python-devel net-snmp-devel libusb-devel libcups-devel .......... ¿Efectuar la instalación de los 25 paquetes? (46 MB) (S/n) s ..........
Repetimos:
$ rpmbuild -ba --sign hplip.spec .......... + exit 0
¡Aquí están mis paquetes:!
$ ls -l ~/rpm/RPMS/i586/ hplip-1.7.4a-1pealfa_mdv2007.1.i586.rpm hplip-debug-1.7.4a-1pealfa_mdv2007.1.i586.rpm hplip-doc-1.7.4a-1pealfa_mdv2007.1.i586.rpm hplip-hpijs-1.7.4a-1pealfa_mdv2007.1.i586.rpm hplip-hpijs-ppds-1.7.4a-1pealfa_mdv2007.1.i586.rpm hplip-model-data-1.7.4a-1pealfa_mdv2007.1.i586.rpm libhpip0-1.7.4a-1pealfa_mdv2007.1.i586.rpm libhpip0-devel-1.7.4a-1pealfa_mdv2007.1.i586.rpm libsane-hpaio1-1.7.4a-1pealfa_mdv2007.1.i586.rpm
7. Importación de la clave pública e instalación
Ahora ya puedo refrescar mi equipo con esos nuevos paquetes. Pero al intentarlo aparecería un mensaje advirtiendo de que los paquetes contienen una firma no válida.
Para asegurarse de que los archivos que estamos instalando son los firmados por pealfa, debo importar la clave pública de la firma de pealfa (está en RPM-GPG-KEY-pealfa); así sabremos que esos son los paquetes correctos y confiará en ellos, al cotejarla con la firma pública importada con la estampada en los rpm.
Para ello hacemos:
# rpm --import RPM-GPG-KEY-pealfa
Ahora se instalarán con la garantía de que son los paquetes firmados y no habrá mensajes de error:
# cd /home/pealfa/rpm/RPMS/i586/ # rpm -Fvh *.rpm Preparing... ########################################### [100%] 1:libhpip0 ########################################### [ 20%] 2:hplip-hpijs ########################################### [ 40%] 3:hplip-model-data ########################################### [ 60%] 4:hplip ########################################### [ 80%] 5:libsane-hpaio1 ########################################### [100%]
Nota: obviamente, esto de la firma sólo tiene sentido si vamos a compartir los paquetes. Por ejemplo, podríamos compartir los paquetes con emule o bittorrent y colocar la clave pública en un lugar donde los clientes puedan descargarla con la seguridad de su autenticidad. Así estarán seguros de que no instalan paquetes que son falsificaciones (virus, troyanos, y cosas de esas). Aunque en realidad han sido las ganas de jugar, claro.
Bueno, ahora puedo tener en mi sistema las ultimísimas versiones que van apareciendo en cooker y que no han sido (o serán) empaquetadas para mi versión actual. ¡Ah! Y ahora le daré aún más la vara a mi hermano con ¡Mi Mandriva Linux ya lo tiene y tu Africana no! ;-D
8. Fuentes y Agradecimientos
Basado en los documentos:
Cómo construir RPM - Wiki Mandriva
Cómo firmar sus paquetes rpm con clave GPG
¡Muchísimas gracias, Osado, por tu labor silenciosa de traducción en el Wiki de Mandriva! Sin ella no me habría decidido (o podido).
Saludos
Pepe Álvarez
__________
Fácildriva: ayuda para instalar software en Mandriva Linux
- Blog de pealfa
- Entra a tu cuenta o crea una para poder comentar.
Usuario
# 36423 Me alegro de ser útil...
...y si traducido a medias ya se usa, ¡cuando termine va a ser la monda!.
XDDD
Saludos
Osado
Registered Linux user 446540
Saludos
Osado
Registered Linux user 446540
condemnant quod non intellegunt
Usuario
# 36433 Más nosotros
Exacto: has dado en el clavo, Osado.
Espero ansioso tu traducción para la construcción de SRPMS desde *.tar.gz. Por favor, no olvides los enlaces, sobre todo los que llevan a los archivos modelos (o plantillas) para la construcción. Sus comentarios de personalización para paquetes de Mandriva son fundamentales.
¿Acaso creías que nadie iba a darse cuenta de lo que estabas perpetrando? ;-)
Saludos
Pepe Álvarez
__________
Fácildriva: ayuda para instalar software en Mandriva Linux
__________
BOFH
# 36443 Para coordinar la presunta
Para coordinar la presunta traducción que dice Pealfa, la página de construcción desde el código fuente tiene previsto este nombre (ya hay enlaces preparados desde otras páginas hacia ella):
Instalar desde código fuente
Ahora es una página inexistente, y el original en inglés es esta página.
Gracias por cierto a Osado, que últimamente está en el "Top" de contribuciones al Wiki.
Saludos,
luismago
--
JID: luismago@jabber.org
Ceterum censeo Carthaginem esse delendam. -Marco Porcio Catón
Saludos,
luismago
--
JID: luismago@jabber.org
Ceterum censeo Carthaginem esse delendam. -Marco Porcio Catón
Usuario
# 36752 Ya no es una página inexistente...
;^)
Saludos
Osado
Registered Linux user 446540
Saludos
Osado
Registered Linux user 446540
condemnant quod non intellegunt
BOFH
# 36428 Gracias a los dos :-)
Saludos
NO LEER
JID:pacho@jabber-hispano.org
El Blog de Pacho
¿Cómo enviar un BUG?
Documentación
El Blog de Pacho