Últimamente estoy instalando algunos programas que en arch linux solo puedo encontrar en los repositorios de AUR.

Los paquetes de estos repositorios de vez en cuando fallan cuándo los intentamos instalar, ya sea mientras compila, mientras se instala con pacman o verificando el checksum.

Este último caso me pasó más de una vez y el fallo está en que el checksum del archivo que descarga el paquete de AUR no coincide con el que viene indicado en el archivo PKGBUILD.

La razón de que no coincida puede ser que el archivo que descargamos esta corrupto, que el paquete no este actualizado, que el mantenedor se confundiera escribiendo los md5sums o que el archivo que descargó ha sido modificado y no es realmente el que debería ser.

El error que veremos si no se valida el checksum sería el siguiente.

[usuario@equipo wifiguard]$ makepkg -s
==> Creando el paquete: wifiguard 1.0.1-1 (dom feb 3 17:23:12 CET 2013)
==> Resolviendo dependencias...
==> Verificando conflictos...
==> Obteniendo fuentes...
-> Se encontró wifiguard_1.0.1_linux_amd64.tar.gz
==> Validando el archivo fuente con md5sums...

wifiguard_1.0.1_linux_amd64.tar.gz ... FALLÓ
==> ERROR: ¡Uno o más archivos no pasaron la verificación de integridad!

Yo en estos casos lo primero que hago antes de solucionar el error es eliminar la carpeta descomprimida del paquete de AUR y volver a empezar el proceso.

Si me vuelve a fallar entonces lo que hago es leer el archivo PKGBUILD y ver de dónde descargó el paquete. Si es de un sitio confiable entonces modifico el md5sum indicado en el PKGBUILD para que acepte el paquete descargado.

Antes de modificar el md5sum en el PKGBUILD hay que saber cual es el MD5 checksum del archivo que descargó. Para hacerlo primero nos movemos hasta el directorio descomprimido del paquete de AUR y después utilizamos el comando md5sum.

Un ejemplo con el paquete wifiguard.

[usuario@equipo ~]$ cd ~/wifiguard
[usuario@equipo wifiguard]$ md5sum wifiguard_1.0.1_linux_amd64.tar.gz
2ffbe0dabe7e5bf77cf36b4e90c28e3e wifiguard_1.0.1_linux_amd64.tar.gz

Todos esos números y letras en hexadecimal es el checksum del paquete. El siguiente paso es abrir el archivo PKGBUILD con un editor de textos (gedit, leafpad, nano...) y buscar algo parecido a las siguientes lineas.

...
_arch='amd64'
 source=("http://www.softperfect.com/download/${pkgname}/${pkgname}_
${pkgver}_linux_${_arch}.tar
d5sums=('230ddaa9c441ef2cebb721f3bf37b719')
...

Una vez localizada la línea que he marcado en rojo, cambiamos los números y letras que se encuentran entre la comillas simples por nuestro checksum. Debería quedar en mi ejemplo de la siguiente manera.

md5sums=('2ffbe0dabe7e5bf77cf36b4e90c28e3e')

Ahora al generar el paquete instalable con makepkg -s ya debería verificar el digest y proseguir de forma normal.