Error al actualizar Pacman 4: solución

Los desarrolladores de Arch Linux han anunciado oficialmente la inclusión de Pacman 4 de lleno en la distribución y en su repositorio base, el llamado core, algo que destaca especialmente por el soporte de paquetes firmados que ofrecen muchas más garantías a los usuarios acerca de su procedencia y su validez real (aparte de los aspectos de seguridad).

Sin embargo, muchos de nosotros tuvimos problemas para actualizar nuestro sistema luego de este cambio. He aquí las soluciones…


Al ejecutar el comando para actualizar el sistema:

pacman -Syu

Se tiene lo siguiente:

:: Los siguientes paquetes deben actualizarse primero:
pacman
:: ¿Desea cancelar la operación actual
:: y actualizar estos paquetes ahora? [S/n]

Al aceptar, aparece algo similar a esto:

resolviendo dependencias...
verificando conflictos...
error: error al preparar la transacción (no se pudieron satisfacer las dependencias)
:: package-query: necesita pacman<3.6

El error ocurre debido a un problema de depedencias de un paquete (en este caso package-query). La solución consiste en remover del sistema el paquete en conflicto y todas sus dependencias.

pacman -Rsc package-query

El cual depende de los siguientes paquetes:

comprobando dependencias...
Se quitará (3): yaourt-0.10.2-1 [0,22 MB] package-query-0.9-1 [0,07 MB] yajl-2.0.4-1 [0,22 MB]Tamaño total eliminado: 0,52 MB
¿Quiere eliminar estos paquetes? [S/n]

Luego, actualizá pacman:

pacman -S pacman

¡Ey! ¿A dónde fue a parar Yaourt?

Cambiar el archivo de configuración de Pacman

Al instalar Pacman 4, nos avisa de la creación de un nuevo archivo de configuración en pacman.conf.pacnew.

Todo lo que hay que hacer es reemplazar el archivo de configuración actualmente en uso por este nuevo. Para ello, primero respaldá el antiguo con:

mv /etc/pacman.conf /etc/pacman.conf.old

Luego, cambiá el nombre del nuevo archivo:

mv /etc/pacman.conf.pacnew /etc/pacman.conf

Finalmente, abrí el archivo:

nano /etc/pacman.conf

…y agregá los repositorios no oficiales que tenías en el antiguo pacman.conf (como el de yaourt, por ejemplo). La manera más fácil es pegando lo siguiente al final del archivo:

[archlinuxfr]Server = http://repo.archlinux.fr/$arch

Este es el momento de volver a instalar los paquetes que removimos en la sección anterior (yaourt, package-query, etc.).

pacman -S yaourt package-query

Habilitar las llaves PGP

Pacman 4 tiene la novedad de poder exigir archivos firmados (PGP). Luego de instalarlo, te lo recuerda con el siguiente aviso: “>>> Run `pacman-key –init` to set up your pacman keyring.”

Abrí el nuevo archivo de configuración /etc/pacman.conf:

nano /etc/pacman.conf

Busca la línea “SigLevel = Optional TrustedOnly” y descomentala. Luego, comentá la línea “SigLevel = Never”.

Debe quedar así:

# PGP signature checking
# NOTE: None of this will work without running `pacman-key --init` first.
# The compiled in default is equivalent to the following line. This requires
# you to locally sign and trust packager keys using `pacman-key` for them to be
# considered valid.
SigLevel = Optional TrustedOnly
# If you wish to check signatures but avoid local sign and trust issues, use
# the following line. This will treat any key imported into pacman's keyring as
# trusted.
#SigLevel = Optional TrustAll
# For now, off by default unless you read the above.
#SigLevel = Never

No olvides descomentar las líneas de SigLevel en los repositorios. Debe quedar así:

[core]SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
[extra]SigLevel = PackageOptional
Include = /etc/pacman.d/mirrorlist
[community]SigLevel = PackageOptional
Include = /etc/pacman.d/mirrorlist

Guardá los cambios y cerrá el archivo.

Ahora, iniciá las llaves PGP con:

pacman-key --init

Según recomiendan en el wiki de Arch, un paso recomendado es modificar el archivo de configuración de las llaves PGP para evitar problemas al importarlas:

nano /etc/pacman.d/gnupg/gpg.conf

Reemplazá la línea “keyserver hkp://keys.gnupg.net” por “keyserver hkp://pgp.mit.edu” (sin comillas).

Por último, sólo falta descargar las llaves. Para evitar descargarlas 1 a 1 en la wiki recomiendan el siguiente script para descargar las llaves maestras:

for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do
pacman-key --recv-keys $key
pacman-key --lsign-key $key
printf 'trustn3nquitn' | gpg --homedir /etc/pacman.d/gnupg/
--no-permission-warning --command-fd 0 --edit-key $key
done

guárdalo como script bash (yo le puse master-keys.sh) dale permisos (sudo chmod +x master-keys.sh) y ejecútalo desde terminal (./master-keys.sh).

Finalmente, actualizá el sistema:

sudo pacman -Syu

Si al actualizar recibís el siguiente error: “filesystem: /etc/mtab existe en el sistema de archivos”, simplemente es necesario forzar la instalación de la nueva versión del paquete, que en este momento es filesystem-2011.12-2:

pacman -S filesystem --force

Desde ya, están avisados: es muy probable que al instalarse las actualizaciones salgan un montón de carteles diciendo que “la llave del paquete X es desconocida, ¿desea importarla?” Tan solo basta con darle a “S” varias veces hasta que se acaben esos mensajes.


4 comentarios

  1.   kik1n dijo

    Uhhh lo logre.
    Solo que ahora me pidio como instalar todo de nuevo.( Solo descarga)

    or: gmtk: key “A91764759326B440” is unknown
    :: Importar la llave PGP 9326B440, “Lukas Fleischer “, creada 2011-10-12? [S/n] S
    error: inetutils: key “FCF2CB179205AC90” is unknown

    Eso esta bien???

  2.   kik1n dijo

    Eso
    or: gmtk: key “A91764759326B440” is unknown
    :: Importar la llave PGP 9326B440, “Lukas Fleischer “, creada 2011-10-12? [S/n] S
    error: inetutils: key “FCF2CB179205AC90” is unknown

    Es bueno??? o paso algo mal???

  3.   Usemos Linux dijo

    Qué bueno! Me alegro. 🙂

  4.   dmaziado dijo

    Pues hice eso y se me daño todo el pacman.conf no me deja actualizar ni menos instalar, me arroja este mensaje…

    root@dmaziado-3m3r dmaziado3m3r]# pacman -Syy
    error: archivo de configuración /etc/pacman.conf, línea 1: Todas las directivas deben pertenecer a una sección.

    Creo que el error fue que por instalar yaourt volvi leña mi pacman.conf que hago???

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *