User Tools

Site Tools


guia_rapida_y_completa_de_pacman_arch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
guia_rapida_y_completa_de_pacman_arch [2021/04/05 01:48] – [Solventar problemas de llaves GPG al instalar aplicaciones con pacman] busindreguia_rapida_y_completa_de_pacman_arch [2024/05/30 14:31] (current) busindre
Line 22: Line 22:
 # Actualizar sistema actualizando la base de datos de paquetes previamente (Uso recomendado). # Actualizar sistema actualizando la base de datos de paquetes previamente (Uso recomendado).
 pacman -Syu pacman -Syu
-pacman -Syu --ignore paquete Ignorar un paquete en la actualización.+pacman -Syu --ignore paquete1,paquete2 Ignora uno o varios paquetes en la actualización. Útil cuando algún paquete está en conflicto con otro nuevo que va a sustituir al actualmente instalado. 
 +pacman --overwrite "*" -Syu  # Si se muestran errores de que determinado fichero ya existe en el sistema de ficheros (de esta manera se fuerza la sobreescritura).
 </code> </code>
 +
 +Para Ignorar siempre la instalacion de X paquetes se puede usar el fichero /etc/pacman.conf y de esta forma evitar hacer uso del parámetro --ignore
 +<code>IgnorePkg   = linux-firmware linux-headers linux</code>
 +
 ==== Evitar responder a preguntas de confirmación de pacman ==== ==== Evitar responder a preguntas de confirmación de pacman ====
 Contestar siempre "yes/sí" a las preguntas de pacman (Are you sure? / ¿Continuar con la instalación? / ... ) Contestar siempre "yes/sí" a las preguntas de pacman (Are you sure? / ¿Continuar con la instalación? / ... )
Line 49: Line 54:
 ==== Instalar / Actualizar / Descargar un paquete ==== ==== Instalar / Actualizar / Descargar un paquete ====
 <code bash>pacman -S paquete <code bash>pacman -S paquete
 +pacman --overwrite "*" -S paquete # Si se muestra el mensaje de que un determinado fichero ya se encuentra dentro del sistema de ficheros ("exists on filesystem").
  
 # Instalar paquetes del repositorio testing (debe estar activado en /etc/pacman.conf). # Instalar paquetes del repositorio testing (debe estar activado en /etc/pacman.conf).
Line 218: Line 224:
 NOTA: En cada actualización que se haga del sistema (pacman -Syu) suele renovarse la lista de mirrors de repositorios. Suele ser conveniente renombrar el nuevo fichero "/etc/pacman.d/mirrorlist.pacnew" a "/etc/pacman.d/mirrorlist". Sin olvidar descomentar los servidores deseados posteriormente. NOTA: En cada actualización que se haga del sistema (pacman -Syu) suele renovarse la lista de mirrors de repositorios. Suele ser conveniente renombrar el nuevo fichero "/etc/pacman.d/mirrorlist.pacnew" a "/etc/pacman.d/mirrorlist". Sin olvidar descomentar los servidores deseados posteriormente.
  
 +==== Repositorios snapshot (ALA) / Downgrade de todos los paquetes referenciando una fecha concreta ====
 +
 +Al estilo de los repositorio snapshot del mundo debian, en arch es posible definir una fecha concreta para instalar unas versiones concretas de la distribución. Esto es útil para probar actualizaciones en sistemas de pruebas antes de aplicarlas en producción. Pero también es algo que puede se usado para resolver problemas en determinadas situaciones.
 +
 +**Arch Linux Archive**: https://wiki.archlinux.org/title/Arch_Linux_Archive
 +
 +Esto por supuesto tiene algunos riesgos, Arch es rolling release y eso significa, que configurar una imagen de repositorio del pasado puede romper algunas aplicaciones que hayan sido actualizadas. Esto es debido a que sus ficheros/directorios de configuración no sean ya compatibles con versiones anteriores, algo que por ejemplo pasa mucho con Firefox. Aunque en estas cosas la suerte juega un papel importante, cuanto más software se tenga instalado y más lejos nos vayamos en el pasado, más riesgo de problemas.
 +
 +Por lo tanto se recomienda hacer uso de esta técnica solo en casos de necesidad. Normalmente una actualización del sistema puede tener una versión concreta de un paquete, por ejemplo el kernel, que es el problemático y es este el que se recomienda reinstalar en una versión anterior (downgrade) para resolver el problema de forma temporal si no se puede esperar a la siguiente versión. En la página de Arch suelen estar bien documentados los problemas con determinados paquetes. Si pese a ello se quiere hacer un downgrade de todo el sistema en base a una fecha, simplemente se deben hacer lo siguiente.
 +
 +Fichero /etc/pacman.d/mirrorlist con un repositorio snapshot de la fecha "11/04/2024"
 +<code>Server=https://archive.archlinux.org/repos/2024/04/11/$repo/os/$arch</code>
 +Hacer un downgrade de todos los paquetes a las versiones de la fecha 11/04/2024
 +<code>Spacman -Syyuu</code>
 +
 +En el fichero "/var/log/pacman.log" se tiene información sobre las fechas de actualizaciones del sistema, por lo que siempre puede referenciarse la ultima fecha en la que se sabe que el sistema no tenía problemas para configurar el repositorio.
 ==== Paquetes de python en Arch ==== ==== Paquetes de python en Arch ====
  
Line 247: Line 269:
  
 Si no está el proceso pacman activo, entonces se debe eliminar el fichero de bloqueo db.lck. A veces se generan este tipo de ficheros al haberse finalizado el proceso pacman de manera forzada. Si no está el proceso pacman activo, entonces se debe eliminar el fichero de bloqueo db.lck. A veces se generan este tipo de ficheros al haberse finalizado el proceso pacman de manera forzada.
 +
 +Error:
 +<code>
 +# Inglés:
 +error: failed to synchronize all databases (unable to lock database)
 +# Español:
 +error: no se han podido sincronizar todas las bases de datos (no se pudo bloquear la base de datos)
 +</code>
 +
 +Solución:
 <code bash>rm /var/lib/pacman/db.lck</code> <code bash>rm /var/lib/pacman/db.lck</code>
  
Line 266: Line 298:
 <code bash>pacman -Sy archlinux-keyring && pacman -Syyu</code> <code bash>pacman -Sy archlinux-keyring && pacman -Syyu</code>
  
 +NOTA: A veces es necesario usar el ultimo fichero /etc/pacman.d/mirrorlist disponible con los repositorios más actualizados. Ya que puede estar usandose un repositorio considerado "deprecated".
 +
 +==== Problemas con la ejecución de los "post-transaction hooks" al finalizar una actualización de Arch ====
 +
 +Este es un problema que puede suceder cuando ha pasado demasiado tiempo desde la última actualización del equipo.
 +<code bash>
 +error: hook /usr/share/libalpm/hooks/90-mkinitcpio-install.hook line 2: invalid value Path
 +error: hook /usr/share/libalpm/hooks/30-systemd-tmpfiles.hook line 2: invalid value Path
 +error: hook /usr/share/libalpm/hooks/60-mkinitcpio-remove.hook line 2: invalid value Path
 +error: hook /usr/share/libalpm/hooks/30-systemd-udev-reload.hook line 2: invalid value Path
 +error: hook /usr/share/libalpm/hooks/20-systemd-sysusers.hook line 2: invalid value Path
 +...</code>
 +
 +Si se reinicia el equipo sin ejecutar los hooks, lo normal es que el sistema no arranque y se necesite montar el disco desde una imagen de arch para solucionar el problema. Esto se debe a que esos triggers (post-transaction hooks) instalan partes del sistema esenciales. Si no se ha reiniciado, es posible simplemente reinstalando systemd para que ejecute de nuevo esos hooks y ya no debería haber más problema.
 +
 +<code bash>pacman -S systemd
 +# También se puede optar por una reinstalación completa de todos los paquetes.
 +# pacman -S $(pacman -Qq)</code>
 +
 +==== Problemas al actualizar con paquetes en conflicto  ====
 +
 +<code>
 +:: Synchronizing package databases...
 + core is up to date
 + extra is up to date
 +:: Starting full system upgrade...
 +:: Replace libblockdev-utils with extra/libblockdev? [Y/n] Y
 +resolving dependencies...
 +looking for conflicting packages...
 +error: unresolvable package conflicts detected
 +error: failed to prepare transaction (conflicting dependencies)
 +:: libblockdev and libblockdev-utils are in conflict
 +</code>
 +
 +Solución: Actualizar el sistema ignorando el paquete que será sustituido.
 +<code bash>
 +pacman -Syu --ignore libblockdev-utils
 +</code>
 ==== Recomendaciones típicas para usar pacman ==== ==== Recomendaciones típicas para usar pacman ====
  
guia_rapida_y_completa_de_pacman_arch.1617580124.txt.gz · Last modified: 2021/04/05 01:48 by busindre