Software libre

Cómo crear nuestro propio repositorio de Arch Linux firmado

Nekmo

Jun. 12, 2016

archlinux repositorios paquetes gpg

Con este tutorial aprenderemos a crear un repositorio no oficial de Arch Linux para subir nuestros propio paquetes firmados.

Aunque es mucho más fácil crear un paquete y subirlo a AUR, algunos preferirán utilizar su propio repositorio: es más rápido y fiable. Lo primero que se necesita es una clave gpg para firmar los paquetes:

$ gpg --gen-key

 

En cuanto se haya generado, obtendremos una salida como la siguiente:

gpg: clave FC4498F5 marcada como de confianza absoluta
gpg: directory '/home/nekmo/.gnupg/openpgp-<wbr/>revocs.d' created
gpg: revocation certificate stored as
'/home/nekmo/.gnupg/openpgp-<wbr/>revocs.d/<wbr/>F865CCCC8AD2393BDDCFE2A2A485D6<wbr/>79FC4498F5.rev'
claves pública y secreta creadas y firmadas.

El KeyID, el cual se indica en amarillo, debemos recordarlo para más adelante.

 

Ahora tenemos que compartir nuestra clave con servidores GPG, lo cual permitirá a nuestros usuarios descargar la clave y así verificar nuestros paquetes:

$ gpg --send-keys

Con esto ya tenemos todo lo necesario para firmar los paquetes.

 

Ahora, por supuesto, necesitaremos un paquete por firmar. El objetivo de este tutorial no es enseñar a crear paquetes con Arch, para lo cual recomiendo la wiki y el manual. En el directorio donde se encuentra el PKGBUILD, ejecutaremos makepkg pero diciendo que queremos firmarlo:

$ makepkg --sign

 

Ahora queda hacer el repositorio: para ello sólo debemos mover los archivos .pkg.tar.xz y .pkg.tar.xz.sig generados al directorio donde se encontrará el repositorio y ejecutar:

$ repo-add --sign repo.db.tar.gz *.pkg.tar.xz

Si repo.db.tar.gz no existe, se creará con la primera ejecución. Ahora sólo quedaría servir dicho directorio usando nuestro servidor HTTP favorito. Por ejemplo, en mi caso: repos.nekmo.org/archlinux.

 

Debemos avisar a nuestros usuarios de la necesidad de añadir la clave para validar la firma de paquetes. Para ello es necesario ejecutar lo siguiente sustituyendo la parte en amarillo por tu KeyID.

$ pacman-key -r FC4498F5 && pacman-key --lsign-key FC4498F5

 

Esto lo estoy usando con mi paquete Simple Monitor Alert, y he hecho un fabric para automatizar el proceso.

Espero que este pequeño tutorial te haya servido ^^ ¡Y hasta la próxima!