Hay problemas bastantes comunes y simples que pueden suceder con la gestión de paquetes en ArchLinux. Muchas veces estamos buscando soluciones por todos lados para estos problemas comunes. Mi intención en este post es juntar esos problemas comunes (con pacman), su explicación y su solución para evitar andar buscando en wikis, foros y blogs.
File not found/Archivo no encontrado
Puede suceder que al ejecutar pacman –S paquete la respuesta sea:
error: failed retrieving file 'foobar.pkg.tar.xz' from extra: Not Found
Esto puede suceder por una de dos razones. Puede que la base de datos local de paquetes este desactualizada, solucionando esto con un pacman –Syyu
O puede que nuestros servidores de descarga (mirrorlist) estén desactualizados. La solución es generar un nuevo mirrorlist con servidores más actualizados.
Utilizando reflector
Instalamos la herramienta reflector desde los repos oficiales:
pacman –S reflector
Respaldamos la actual lista de servidores
# cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
Y utilizamos reflector para listar los 5 servidores más actualizados y con mejor velocidad de descarga de nuestro mirrorlist:
reflector -l 5 --sort rate --save /etc/pacman.d/mirrorlist
Y reactualizamos nuestra base de datos
pacman -Syyu
para ver más opciones de reflector el comando de ayuda es
reflector --help
También podemos utilizar el mirrorlist generator que se encuentra en la página de ArchLinux, este creara una lista de mirrors en texto plano que manualmente guardamos y sustituimos por nuestro mirrorlist.
Si el problema no se soluciono con cualquiera de estos métodos, entonces el problema es de conexión de red o el paquete requerido no existe en los repositorios oficiales, hay que buscarlo en AUR
FILENAME exists in Filesystem – Nombre de archivo existe en el sistema
Esto no es un error, sino una característica de pacman. Al actualizar un paquete si existe en el sistema de archivos pacman no lo sobre escribirá, es responsabilidad del usuario sobre escribir archivos de configuración yd e programas a la
hora de instalar o actualizar.
La forma fácil de solucionarlo es verificar si ese archivo no es propiedad de otro programa con:
pacman –Qo /ruta/al/archivo/que/genera/conflicto
Si genera conflicto con otro programa, podemos subir un reporte de bug, lo más probable es que no y que simplemente no quiera sobre escribirlo, para esto solo hacemos
pacman –Sfyu
Para actualizar, sobrescribiendo otros archivos, o
pacman –Sf
Para instalar el paquete conflictivo. La opción f forza la sobre escritura de cualquier archivo.
Archivo guardado como pacnew o pacsave
Igual que el problema anterior, pacman no sobre escribirá archivos de configuración cuando uno nuevo sea instalado, otra vez no por error, sino por diseño. Cuando un archivo de configuración cambia significa que hay nuevas variables o un nuevo manejo de la configuración y que el usuario debe revisarlo, aquí no hay opción para forzar la sobre escritura.
Sucede que al actualizar encontramos un mensaje como:
advertencia: /etc/pam.d/usermod instalado como /etc/pam.d/usermod.pacnew
Para solucionar este problema tenemos que configurar el archivo nuevo (pacnew) con las variables que hayamos modificado en el archivo de configuración original, luego borrar el original y mover el pacnew:
Editamos el nuevo archivo y modificamos lo que tengamos que modificar:
vim /etc/pam.d/usermod.pacnew
Borramos el archivo viejo de configuración
rm /etc/pam.d/usermod
Movemos el archivo nuevo de configuración
mv /etc/pam.d/usermod.pacnew /etc/pam.d/usermod
Downgrade de versión
Este si es algo más complicado. Sucede que muchas veces una versión nueva de algo rompe nuestro sistema, sucede mucho con drivers de gráficos o de wireless. La solución a ello es devolver la versión del software a una anterior y más estable.
Para bajar la versión de un software podemos hacerlo de 2 formas.
Buscar una versión anterior en servidores espejo desactualizados
Buscando un mirror desactualizado desde mirrors status y verificar si tiene la versión anterior a esta conflictiva del software, para ello nos valemos de la página de mirror estatus
Luego de descargado el paquete específico podemos instalarlo localmente así:
pacman –Uf nombre del paquete.pkg.tar.xz
U es para paquetes instalados localmente y f es para forzar su instalación y regresión a una versión anterior.
No puedo hacer downgrade por conflicto de dependencias
Esta opción también se puede forzar con
pacman –Ud nombre del paquete.pkg.tar.xz
Donde d instala el paquete forzando las dependencias, esto eventualmente creara conflictos con el sistema
Hay una opción menos manual y más sencilla de bajar la versión y es utilizar la utilería: Downgrade
Downgrade es un programa que se encuentra en AUR, hace exactamente lo mencionado antes pero lo hace automáticamente, podemos instalar downgrade utilizando yaourt:
yaourt –S downgrade
Y lo podemos utilizar invocando el programa que queremos desactualizar, ejemplo con firefox:
[lucain@Archie ~]$ downgrade firefox The following packages are available in your cache: 1 local firefox-9.0.1-1-i686.pkg.tar.xz please choose a version, [s]earch A.R.M., or [q]uit:
Si le damos la opción de buscar, buscara todas las opciones disponibles en los snapshots de los repositorios de ArchLinux, ejemplo con firefox
please choose a version, [s]earch A.R.M., or [q]uit: s The following packages are available from the A.R.M.: 1 extra firefox-9.0-1-i686.pkg.tar.xz.sig 2 extra firefox-9.0-1-i686.pkg.tar.xz 3 extra firefox-9.0.1-1-i686.pkg.tar.xz.sig 4 extra firefox-9.0.1-1-i686.pkg.tar.xz 5 extra firefox-8.0-1-i686.pkg.tar.xz.sig 6 extra firefox-8.0-1-i686.pkg.tar.xz 7 extra firefox-8.0.1-1-i686.pkg.tar.xz.sig 8 extra firefox-8.0.1-1-i686.pkg.tar.xz 9 extra firefox-7.0-1-i686.pkg.tar.xz.sig 10 extra firefox-7.0-1-i686.pkg.tar.xz 11 extra firefox-7.0.1-1-i686.pkg.tar.xz.sig 12 extra firefox-7.0.1-1-i686.pkg.tar.xz 13 extra firefox-6.0.2-1-i686.pkg.tar.xz.sig 14 extra firefox-6.0.2-1-i686.pkg.tar.xz 15 extra firefox-6.0-1-i686.pkg.tar.xz.sig 16 extra firefox-6.0-1-i686.pkg.tar.xz 17 extra firefox-6.0.1-1-i686.pkg.tar.xz.sig 18 extra firefox-6.0.1-1-i686.pkg.tar.xz 19 extra firefox-5.0-1-i686.pkg.tar.xz 20 extra firefox-4.0-1-i686.pkg.tar.xz 21 extra firefox-4.0.1-1-i686.pkg.tar.xz.sig 22 extra firefox-4.0.1-1-i686.pkg.tar.xz 23 extra firefox-3.6.9-1-i686.pkg.tar.xz 24 extra firefox-3.6.8-1-i686.pkg.tar.xz 25 extra firefox-3.6.7-1-i686.pkg.tar.xz 26 extra firefox-3.6.6-1-i686.pkg.tar.xz 27 extra firefox-3.6.4-1-i686.pkg.tar.xz 28 extra firefox-3.6.3-1-i686.pkg.tar.xz 29 extra firefox-3.6-2-i686.pkg.tar.gz 30 extra firefox-3.6.2-1-i686.pkg.tar.xz 31 extra firefox-3.6.15-1-i686.pkg.tar.xz 32 extra firefox-3.6.14-1-i686.pkg.tar.xz 33 extra firefox-3.6.13-1-i686.pkg.tar.xz 34 extra firefox-3.6.12-1-i686.pkg.tar.xz 35 extra firefox-3.6.11-1-i686.pkg.tar.xz 36 extra firefox-3.6.10-1-i686.pkg.tar.xz 37 extra firefox-3.5.7-1-i686.pkg.tar.gz 38 extra firefox-3.5.6-1-i686.pkg.tar.gz 39 extra firefox-3.5.5-1-i686.pkg.tar.gz 40 extra firefox-3.5.4-1-i686.pkg.tar.gz please choose a version or [q]uit:
Escogemos una versión y la instalara, si queremos que no se actualice para el próximo pacman –Syu, agregamos el programa a la lista de IgnorePkg de /etc/pacman.conf
De momento esos son los errores más comunes con paquetes en pacman, si tienen otro o si encuentran una solución no duden en dejarme un comentario y actualizaría el contenido del post, saludos
Pingback: Como hacer un downgrade en Arch Linux | Paraiso Linux()