Cómo crear nuestro propio repositorio de Arch Linux firmado
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!
Github Twitter Google+ Youtube Email