guia_rapida_y_completa_de_pacman_arch
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
guia_rapida_y_completa_de_pacman_arch [2020/12/25 22:57] – external edit 127.0.0.1 | guia_rapida_y_completa_de_pacman_arch [2024/03/05 01:24] (current) – [Problemas al actualizar con paquetes en conflicto] busindre | ||
---|---|---|---|
Line 6: | Line 6: | ||
Archivos binarios a instalar. | Archivos binarios a instalar. | ||
- | .PKGINFO: contiene todos los metadatos requeridos por pacman para tratar con paquetes, dependencias, | + | |
- | .MTREE: contiene hashes y marcas de tiempo de los archivos que se incluyen en la base de datos local para que pacman pueda verificar la integridad del paquete. | + | * .PKGINFO: contiene todos los metadatos requeridos por pacman para tratar con paquetes, dependencias, |
- | .INSTALL: un archivo opcional utilizado para ejecutar comandos después de la fase de instalación/ | + | |
- | Changelog: un archivo opcional guardado por el responsable del paquete documentando los cambios del paquete. (No está presente en todos los paquetes.) | + | * .MTREE: contiene hashes y marcas de tiempo de los archivos que se incluyen en la base de datos local para que pacman pueda verificar la integridad del paquete. |
+ | |||
+ | * .INSTALL: un archivo opcional utilizado para ejecutar comandos después de la fase de instalación/ | ||
+ | |||
+ | * Changelog: un archivo opcional guardado por el responsable del paquete documentando los cambios del paquete. (No está presente en todos los paquetes.) | ||
==== Actualizar sistema ==== | ==== Actualizar sistema ==== | ||
Line 18: | 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 paquete # Ignorar un paquete en la actualización. Útil cuando algún paquete está en conflicto con otro nuevo que va a sustituir al actualmente instalado. |
- | </ | + | pacman --overwrite " |
+ | </ | ||
==== Evitar responder a preguntas de confirmación de pacman ==== | ==== Evitar responder a preguntas de confirmación de pacman ==== | ||
Contestar siempre " | Contestar siempre " | ||
Line 46: | Line 51: | ||
==== Instalar / Actualizar / Descargar un paquete ==== | ==== Instalar / Actualizar / Descargar un paquete ==== | ||
<code bash> | <code bash> | ||
+ | pacman --overwrite " | ||
# Instalar paquetes del repositorio testing (debe estar activado en / | # Instalar paquetes del repositorio testing (debe estar activado en / | ||
Line 175: | Line 181: | ||
pacman -Qii | awk '/ | pacman -Qii | awk '/ | ||
</ | </ | ||
+ | |||
==== Clonar conjunto de paquetes instalados entre dos sistemas Arch ==== | ==== Clonar conjunto de paquetes instalados entre dos sistemas Arch ==== | ||
<code bash> | <code bash> | ||
Line 180: | Line 187: | ||
pacman -S - < pkglist.txt | pacman -S - < pkglist.txt | ||
</ | </ | ||
+ | |||
+ | |||
==== Historial de pacman ==== | ==== Historial de pacman ==== | ||
Line 223: | Line 232: | ||
<code bash>pip install --user packagename</ | <code bash>pip install --user packagename</ | ||
+ | **Buscar todas las versiones disponibles de un paquete con Pip** (Python 3) | ||
- | ==== Solventar problemas de llaves GPG al instalar aplicaciones con pacman ==== | + | <code bash># Ejemplo para visualizar todas las versiones de Ansible disponibles mediante pip. |
- | <code bash>pacman-key --refresh-keys | + | pip install |
- | pacman -S archlinux-keyring</ | + | |
+ | ERROR: Could not find a version that satisfies the requirement ansible== (from versions: 1.0, 1.1, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.6, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, 1.6.6, 1.6.7, 1.6.8, 1.6.9, 1.6.10, 1.7, 1.7.1, 1.7.2, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.9.0.1, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.9.5, 1.9.6, 2.0.0.0, 2.0.0.1, 2.0.0.2, 2.0.1.0, 2.0.2.0, 2.1.0.0, 2.1.1.0, 2.1.2.0, 2.1.3.0, 2.1.4.0, 2.1.5.0, 2.1.6.0, 2.2.0.0, 2.2.1.0, 2.2.2.0, 2.2.3.0, 2.3.0.0, 2.3.1.0, 2.3.2.0, 2.3.3.0, 2.4.0.0, 2.4.1.0, 2.4.2.0, 2.4.3.0, 2.4.4.0, 2.4.5.0, 2.4.6.0, 2.5.0a1, 2.5.0b1, 2.5.0b2, 2.5.0rc1, 2.5.0rc2, 2.5.0rc3, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.5.5, 2.5.6, 2.5.7, 2.5.8, 2.5.9, 2.5.10, 2.5.11, 2.5.12, 2.5.13, 2.5.14, 2.5.15, 2.6.0a1, 2.6.0a2, 2.6.0rc1, 2.6.0rc2, 2.6.0rc3, 2.6.0rc4, 2.6.0rc5, 2.6.0, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9, 2.6.10, 2.6.11, 2.6.12, 2.6.13, 2.6.14, 2.6.15, 2.6.16, 2.6.17, 2.6.18, 2.6.19, 2.6.20, 2.7.0.dev0, 2.7.0a1, 2.7.0b1, 2.7.0rc1, 2.7.0rc2, 2.7.0rc3, 2.7.0rc4, 2.7.0, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9, 2.7.10, 2.7.11, 2.7.12, 2.7.13, 2.7.14, 2.7.15, 2.7.16, 2.7.17, 2.7.18, 2.8.0a1, 2.8.0b1, 2.8.0rc1, 2.8.0rc2, 2.8.0rc3, 2.8.0, 2.8.1, 2.8.2, 2.8.3, 2.8.4, 2.8.5, 2.8.6, 2.8.7, 2.8.8, 2.8.9, 2.8.10, 2.8.11, 2.8.12, 2.8.13, 2.8.14, 2.8.15, 2.8.16rc1, 2.8.16, 2.8.17rc1, 2.8.17, 2.8.18rc1, 2.8.18, 2.8.19rc1, 2.8.19, 2.9.0b1, 2.9.0rc1, 2.9.0rc2, 2.9.0rc3, 2.9.0rc4, 2.9.0rc5, 2.9.0, 2.9.1, 2.9.2, 2.9.3, 2.9.4, 2.9.5, 2.9.6, 2.9.7, 2.9.8, 2.9.9, 2.9.10, 2.9.11, 2.9.12, 2.9.13, 2.9.14rc1, 2.9.14, 2.9.15rc1, 2.9.15, 2.9.16rc1, 2.9.16, 2.9.17rc1, 2.9.17, 2.9.18rc1, 2.9.18, 2.10.0a1, 2.10.0a2, 2.10.0a3, 2.10.0a4, 2.10.0a5, 2.10.0a6, 2.10.0a7, 2.10.0a8, 2.10.0a9, 2.10.0b1, 2.10.0b2, 2.10.0rc1, 2.10.0, 2.10.1, 2.10.2, 2.10.3, 2.10.4, 2.10.5, 2.10.6, 2.10.7, 3.0.0b1, 3.0.0rc1, 3.0.0) | ||
+ | ERROR: No matching distribution found for ansible==</ | ||
+ | ==== Solventar problemas de llaves GPG al instalar aplicaciones con pacman ==== | ||
+ | <code bash># El error " | ||
+ | pacman-key --refresh-keys --keyserver hkp:// | ||
+ | pacman -S archlinux-keyring | ||
+ | # El error " | ||
+ | pacman-key -r 7258734B41C31549 3B94A80E50A477C7 --keyserver hkp:// | ||
+ | </ | ||
==== Solucionar " | ==== Solucionar " | ||
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: | ||
+ | < | ||
+ | # 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) | ||
+ | </ | ||
+ | |||
+ | Solución: | ||
<code bash>rm / | <code bash>rm / | ||
Line 250: | Line 278: | ||
<code bash> | <code bash> | ||
+ | |||
+ | NOTA: A veces es necesario usar el ultimo fichero / | ||
+ | |||
+ | ==== Problemas con la ejecución de los " | ||
+ | |||
+ | Este es un problema que puede suceder cuando ha pasado demasiado tiempo desde la última actualización del equipo. | ||
+ | <code bash> | ||
+ | error: hook / | ||
+ | error: hook / | ||
+ | error: hook / | ||
+ | error: hook / | ||
+ | error: hook / | ||
+ | ...</ | ||
+ | |||
+ | 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> | ||
+ | # También se puede optar por una reinstalación completa de todos los paquetes. | ||
+ | # pacman -S $(pacman -Qq)</ | ||
+ | |||
+ | ==== Problemas al actualizar con paquetes en conflicto | ||
+ | |||
+ | < | ||
+ | :: Synchronizing package databases... | ||
+ | core is up to date | ||
+ | extra is up to date | ||
+ | :: Starting full system upgrade... | ||
+ | :: Replace libblockdev-utils with extra/ | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | Solución: Actualizar el sistema ignorando el paquete que será sustituido. | ||
+ | <code bash> | ||
+ | pacman -Syu --ignore libblockdev-utils | ||
+ | </ | ||
+ | ==== Recomendaciones típicas para usar pacman ==== | ||
+ | |||
+ | Evite realizar actualizaciones parciales. En otras palabras, nunca ejecute pacman -Sy; en su lugar, siempre pacman -Syu. | ||
+ | |||
+ | Antes de instalar algo, mejor actualizar el sistema completamente (para no entrar en las actualizaciones parciales) | ||
+ | |||
+ | Actualizar de manera regular para no dar saltos demasiado grandes entre versiones. | ||
+ | |||
+ | Visualizar atentamente qué paquetes se van a actualizar y los avisos una vez están siendo instalados por si se necesita / recomienda realizar algo a posteriori. | ||
+ | |||
+ | Visitar la web de arch previamente a actualizar para percatarse de posibles problemas con paquetes que puedan requerir mantenimiento manual al actualizar el sistema. | ||
+ | |||
+ | Es aconsejable antes de actualizar el sistema, esperar a tener tiempo suficiente para poder hacer frente a posibles problemas posteriores a la actualización. | ||
+ | |||
+ | El script de bash " | ||
+ | |||
+ | Cuando se ejecuta pacman, pueden crearse archivos .pacnew y .pacsave. Pacman proporciona avisos cuando esto sucede y los usuarios deben tratar estos archivos con prontitud. | ||
+ | |||
+ | Si el sistema tiene paquetes instalados manualmente (siempre debería hacerse mediante makepkg), los usuarios tendrán que reconstruirlos cuando sus dependencias reciban una advertencia soname (bumps). | ||
+ | |||
+ | Si se ha creado un escenario de actualización parcial y se rompen los binarios porque no pueden encontrar las bibliotecas a las que están vinculadas, NO solucione el problema simplemente mediante enlaces simbólicos. Las bibliotecas reciben advertencias soname(bumps) cuando no son compatibles con versiones anteriores. Simplemente actualice usando pacman -Syu para solucionar el problema. | ||
==== Enlaces de interés ==== | ==== Enlaces de interés ==== |
guia_rapida_y_completa_de_pacman_arch.1608933466.txt.gz · Last modified: 2020/12/25 22:57 by 127.0.0.1