Difference between revisions of "Pacman (Español)"

From ArchWiki
Jump to: navigation, search
m
m (use Arch Linux Archive, style)
 
(68 intermediate revisions by 13 users not shown)
Line 1: Line 1:
 +
{{Lowercase title}}
 
[[Category:Package management (Español)]]
 
[[Category:Package management (Español)]]
 +
[[Category:Arch projects (Español)]]
 +
[[ar:Pacman]]
 
[[cs:Pacman]]
 
[[cs:Pacman]]
 
[[da:Pacman]]
 
[[da:Pacman]]
Line 5: Line 8:
 
[[el:Pacman]]
 
[[el:Pacman]]
 
[[en:Pacman]]
 
[[en:Pacman]]
 +
[[fa:Pacman]]
 
[[fr:Pacman]]
 
[[fr:Pacman]]
 
[[id:Pacman]]
 
[[id:Pacman]]
Line 10: Line 14:
 
[[ja:Pacman]]
 
[[ja:Pacman]]
 
[[ko:Pacman]]
 
[[ko:Pacman]]
[[lt:Pacman]]
 
 
[[nl:Pacman]]
 
[[nl:Pacman]]
 
[[pl:Pacman]]
 
[[pl:Pacman]]
 
[[pt:Pacman]]
 
[[pt:Pacman]]
[[ro:Pacman]]
 
 
[[ru:Pacman]]
 
[[ru:Pacman]]
 
[[sr:Pacman]]
 
[[sr:Pacman]]
 
[[sv:Pacman]]
 
[[sv:Pacman]]
[[tr:pacman]]
+
[[zh-hans:Pacman]]
[[uk:Pacman]]
+
[[zh-hant:Pacman]]
[[zh-CN:Pacman]]
+
{{TranslationStatus (Español)|pacman|2017-10-08|490231}}
[[zh-TW:Pacman]]
+
{{Related articles start (Español)}}
{{Lowercase title}}
+
{{Related2|Creating packages (Español)|Crear paquetes}}
{{Article summary start|Sumario}}
+
{{Related|Downgrading packages}}
{{Article summary text|Pacman es el [[Wikipedia:Package management system|gestor de paquetes]] de Arch Linux. Los gestores de paquetes sirven para instalar, actualizar y eliminar software. Este artículo trata sobre la utilización básica y la solución de problemas más frecuentes.}}
+
{{Related2|pacman/Package signing (Español)|pacman/firmar paquetes}}
{{Article summary heading|Descripción}}
+
{{Related2|pacman/Pacnew and Pacsave (Español)|pacman/Pacnew y Pacsave}}
{{Article summary text|Los paquetes de Arch Linux son compilados por medio de [[makepkg]] y de un script específico para cada paquete (llamado [[PKGBUILD]]). Una vez creado, el paquete de software puede ser instalado y gestionado con pacman. Los PKGBUILDs para el software presente en los [[Official repositories|repositorios officiales]] estan disponibles del árbol de [[ABS]]; miles de paquetes más están disponibles del repositorio [[Arch User Repository|AUR]] (sin soporte oficial).}}
+
{{Related|pacman/Restore local database}}
{{Article summary heading|Relacionado}}
+
{{Related|pacman/Rosetta (Español)}}
{{Article summary wiki|Downgrading Packages}}
+
{{Related2|pacman/Tips and tricks (Español)|pacman/Consejos y trucos}}
{{Article summary wiki|Improve Pacman Performance}}
+
{{Related2|Frequently asked questions (Español)#Administración de paquetes|Administración de paquetes}}
{{Article summary wiki|Pacman GUI Frontends}}
+
{{Related2|System maintenance (Español)|Mantenimiento del sistema}}
{{Article summary wiki|Pacman Rosetta}}
+
{{Related|Arch Build System (Español)}}
{{Article summary wiki|Pacman Tips}}
+
{{Related2|Official repositories (Español)|Repositorios oficiales}}
{{Article summary wiki|Pacman package signing}}
+
{{Related|Arch User Repository (Español)}}
{{Article summary wiki|FAQ#Package Management}}
+
{{Related articles end}}
{{Article summary wiki|pacman-key}}
 
{{Article summary wiki|Pacnew and Pacsave Files}}
 
{{Article summary heading|Recursos}}
 
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}
 
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}
 
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}
 
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}
 
{{Article summary end}}
 
  
El [[Wikipedia:Package management system|gestor de paquetes de pacman]] es una de las principales características distintivas de Arch Linux. Combina un simple formato de paquetes binarios con un fácil [[Arch Build System|sistema de compilación de paquetes]]. El objetivo de pacman es hacer posible gestionar fácilmente los paquetes, si son de los [[Official Repositories|repositorios oficiales de Arch]] o compilaciones propias del usuario.
+
El [[Wikipedia:Package management system|gestor de paquetes]] [https://www.archlinux.org/pacman/ pacman] es una de las principales características distintivas de Arch Linux. Combina un simple formato de paquetes binarios con un fácil [[Arch Build System|sistema de compilación de paquetes]]. El objetivo de ''pacman'' es hacer posible gestionar fácilmente los paquetes, tanto si son los de los [[Official repositories|repositorios oficiales de Arch]] como las compilaciones realizadas por los propios usuarios.
  
Pacman mantiene el sistema actualizado mediante la sincronización de listas de paquetes con el servidor principal. Este modelo servidor/cliente también le permite descargar/instalar paquetes con un simple comando, completado con todas las dependencias necesarias.
+
''pacman'' mantiene el sistema actualizado mediante la sincronización con las listas de paquetes del servidor principal. Este modelo servidor/cliente le permite descargar y/o instalar paquetes con una simple orden y cubrir sus dependencias necesarias.
  
Pacman está escrito en el lenguaje de programación C y utiliza para los paquetes el formato {{ic|.pkg.tar.xz}}.
+
''pacman'' está escrito en lenguaje de programación C y utiliza el formato [[w:tar (computing)|tar]] para empaquetar.
  
{{Sugerencia|El paquete oficial {{Pkg|pacman}} también contiene otras herramientas útiles, tales como '''makepkg''', '''pactree''', '''vercmp''' y otros. Se puede obtener la lista completa con {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}
+
{{Sugerencia|el paquete oficial {{Pkg|pacman}} también contiene otras herramientas útiles, tales como [[makepkg]], '''pactree''', '''vercmp''' y [[checkupdates]]. Se puede obtener la lista completa de dichas herramientas con {{ic|pacman -Qlq pacman <nowiki>|</nowiki> grep bin}} }}
  
== Configuración ==
+
== Utilización ==
  
La configuración de pacman se encuentra en el archivo {{ic|/etc/pacman.conf}}. Este es el archivo donde el usuario configura el programa para que funcione de la manera deseada. Información en profundidad sobre el archivo de configuración se puede encontrar en [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].
+
Lo que sigue es una pequeña muestra de las operaciones que se pueden realizar con ''pacman''. Para leer más ejemplos, remítase a {{man|8|pacman}}.
  
=== Opciones Generales ===
+
{{Sugerencia|para aquellos usuarios que han utilizado antes otras distribuciones de Linux, el artículo [[Pacman Rosetta]] les puede resultar útil.}}
  
Las opciones generales están en la sección {{ic|[options]}}. Lea la página de man o en el {{ic|pacman.conf}} predefinido para información adicional.
+
===Instalar paquetes===
  
==== Evitar la actualización de un paquete ====
+
{{Nota|los paquetes suelen tener [[PKGBUILD#optdepends|dependencias opcionales]], dependencias que proporcionan características adicionales a la aplicación, sin ser necesarias para su funcionamiento. Al instalar un paquete, ''pacman'' mostrará sus dependencias opcionales sin registrarlas en {{ic|pacman.log}}: utilice la orden [[#Consultar la base de datos de los paquetes|pacman -Si]] para ver las dependencias opcionales de un paquete así como una breve descripción de sus funcionalidades.}}
  
Para omitir la actualización de un paquete determinado, especifíquelo en la línea apropiada:
+
{{Advertencia|1=al instalar paquetes en Arch, evite actualizar la lista de paquetes sin [[#Actualizar paquetes|actualizar el sistema]] (imagine, por ejemplo, el caso de un [[#Los paquetes no se pueden recibir en la instalación|paquete que ya no se mantiene]] en los repositorios). En la práctica, '''no''' es aconsejable ejecutar {{ic|pacman -Sy ''nombre_paquete''}}, sino más bien {{ic|pacman -Sy'''u''' ''nombre_paquete''}}, ya que la primera orden podría ocasionar problemas de dependencia. Consulte [[System maintenance#Partial upgrades are unsupported]] y [https://bbs.archlinux.org/viewtopic.php?id=89328 BBS#89328].}}
  
IgnorePkg=linux
+
====Instalar paquetes específicos====
  
Para ignorar la actualización de varios paquetes utilice una lista separada por espacios, o use líneas adicionales {{ic|IgnorePkg}}.
+
Para instalar o actualizar un solo paquete o lista de paquetes (incluyendo las dependencias), ejecute la orden siguiente:
  
==== Evitar la actualización de un grupo de paquetes ====
+
# pacman -S ''nombre_paquete1'' ''nombre_paquete2'' ...
  
Al igual que con un paquete, es posible ignorar la actualización de un grupo de paquetes:
+
Para instalar una lista de paquetes con una [[wikipedia:Expresi%C3%B3n_regular|expresión regular (regex)]] (vea [https://bbs.archlinux.org/viewtopic.php?id=7179 este hilo del foro]):
  
  IgnoreGroup=gnome
+
  # pacman -S $(pacman -Ssq ''expresion-regular_paquete'')
  
==== Evitar la instalación de archivos en el sistema ====
+
A veces hay varias versiones de un paquete en diferentes repositorios, por ejemplo, ''extra'' y ''testing''. Para instalar la versión precedente necesita especificar el nombre del repositorio:
  
Para ignorar siempre la instalación de archivos o carpetas específicos enumérelos con {{Ic|NoExtract}}. Por ejemplo, para evitar la instalación de units de [[systemd (Español)|systemd]] use ésto:
+
# pacman -S extra/''nombre_paquete''
  
NoExtract=usr/lib/systemd/system/*
+
Para instalar un número de paquetes que comparten patrones similares en sus nombres —no todo el grupo ni todos los paquetes coincidentes— p.ej. {{Grp|plasma}}:
  
=== Repositorios ===
+
# pacman -S plasma-{desktop,mediacenter,nm}
  
En esta sección se define qué [[Official Repositories|repositorios]] utilizar, como se especifican en {{ic|/etc/pacman.conf}}. Se puede especificar aquí directamente o incluirlo desde otro archivo (por ejemplo {{ic|/etc/pacman.d/mirrorlist}}), siendo necesario mantener una sola lista.
+
Por supuesto, esto no está limitado y se puede ampliar a los niveles que sean necesarios:
  
{{hc|/etc/pacman.conf|2=
+
# pacman -S plasma-{workspace{,-wallpapers},pa}
#[testing]
 
#SigLevel = PackageRequired
 
#Include = /etc/pacman.d/mirrorlist
 
  
[core]
+
====Instalar grupos de paquetes====
SigLevel = PackageRequired
 
Include = /etc/pacman.d/mirrorlist
 
  
[extra]
+
Algunos paquetes pertenecen a un [[Creating_packages#Meta_packages_and_groups|grupo de paquetes]], los cuales se pueden instalar simultáneamente. Por ejemplo, emitiendo la orden:
SigLevel = PackageRequired
 
Include = /etc/pacman.d/mirrorlist
 
  
#[community-testing]
+
# pacman -S gnome
#SigLevel = PackageRequired
 
#Include = /etc/pacman.d/mirrorlist
 
 
 
[community]
 
SigLevel = PackageRequired
 
Include = /etc/pacman.d/mirrorlist
 
 
 
# If you want to run 32 bit applications on your x86_64 system,
 
# enable the multilib repositories as required here.
 
 
 
#[multilib-testing]
 
#SigLevel = PackageRequired
 
#Include = /etc/pacman.d/mirrorlist
 
 
 
#[multilib]
 
#SigLevel = PackageRequired
 
#Include = /etc/pacman.d/mirrorlist
 
 
 
# An example of a custom package repository.  See the pacman manpage for
 
# tips on creating your own repositories.
 
#[custom]
 
#SigLevel = Optional TrustAll
 
#Server = file:///home/custompkgs}}
 
 
 
{{Advertencia|Se debe tener cuidado cuando se utiliza el repositorio [testing]. Dado que se encuentra en desarrollo contínuo, la actualización puede causar mal funcionamiento en algunos paquetes. A los usuarios que usan el repositorio [testing]  se les anima a suscribirse a la [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public lista de correos de arch-dev-public] para estar al corriente.}}
 
 
 
=== Seguridad de los paquetes ===
 
  
Pacman 4 soporta paquetes firmados, lo que añade un nivel adicional de seguridad para los paquetes. Para habilitar la verificación de la firma, consulte [[pacman-key|este artículo]].
+
el prompt le pedirá que seleccione los paquetes del grupo {{Grp|gnome}} que desea instalar.
  
== Uso ==
+
En algunas ocasiones, un grupo contiene una gran cantidad de paquetes, y puede que solo le interese, o no desee instalar, unos pocos de ellos. En lugar de tener que introducir todos los números excepto los que no desea, quizás sea más conveniente, para seleccionar o excluir paquetes o intervalos de paquetes, la siguiente sintaxis:
  
Lo que sigue es sólo una pequeña muestra de las operaciones que se pueden realizar con pacman. Para leer más ejemplos, consulte [https://www.archlinux.org/pacman/pacman.8.html man pacman].
+
Enter a selection (default=all): 1-10 15
  
===Instalar paquetes===
+
que seleccionará los paquetes del 1 al 10 y 15 para la instalación, o bien:
====Instalar paquetes específicos====
 
Para instalar o actualizar un sólo paquete o lista de paquetes (incluyendo las dependencias), ejecute el comando siguiente:
 
  
  # pacman -S ''nombre_paquete1'' ''nombre_paquete2'' ...
+
  Enter a selection (default=all): ^5-8 ^2
  
A veces hay varias versiones de un paquete en diferentes repositorios, por ejemplo, [extra] y [testing]. Para instalar la versión precedente necesita especificar el nombre del repositorio:
+
que seleccionará todos los paquetes excepto 5 a 8 y 2 para la instalación.
  
# pacman -S extra/''nombre_paquete''
+
Para ver qué paquetes pertenecen al grupo gnome, ejecute:
 
 
====Instalar grupos de paquetes====
 
Algunos paquetes pertenecen a un grupo, los cuales se pueden instalar simultáneamente. Por ejemplo, usando el comando:
 
 
 
# pacman -S gnome
 
 
 
se instalarán todos los paquetes que pertenecen al grupo {{ic|gnome}}. Para ver qué paquetes pertenecen al grupo de gnome, ejecute:
 
  
 
  # pacman -Sg gnome
 
  # pacman -Sg gnome
Line 153: Line 104:
 
Visite también https://www.archlinux.org/groups/ para ver qué grupos de paquetes están disponibles.
 
Visite también https://www.archlinux.org/groups/ para ver qué grupos de paquetes están disponibles.
  
{{Nota|Si un paquete en la lista ya está instalado en el sistema, éste se volverá a reinstalar, incluso si ya está actualizado, a menos que se utilice la opción {{ic|--needed}}.}}
+
{{Nota|si un paquete de la lista ya está instalado en el sistema, este se volverá a reinstalar, incluso si ya está actualizado, a menos que se utilice la opción {{ic|--needed}}.}}
 
 
{{Advertencia|1=Al instalar paquetes, '''no''' actualice la lista de paquetes sin [[#Upgrading packages|actualizar]] el sistema (es decir,  {{ic|pacman -Sy ''nombre_paquete''}}); de lo contrario, se pueden producir problemas de dependencia. Véase [[#Partial upgrades are unsupported]] y https://bbs.archlinux.org/viewtopic.php?id=89328.}}
 
  
 
=== Desinstalar paquetes ===
 
=== Desinstalar paquetes ===
Line 163: Line 112:
 
  # pacman -R ''nombre_paquete''
 
  # pacman -R ''nombre_paquete''
  
Para eliminar un paquete y sus dependencias que no son usadas por ningún otro paquete instalado:
+
Para eliminar un paquete y sus dependencias (siempre que no sean usadas por ningún otro paquete instalado):
  
 
  # pacman -Rs ''nombre_paquete''
 
  # pacman -Rs ''nombre_paquete''
Line 169: Line 118:
 
Para eliminar un paquete, sus dependencias y todos los paquetes que dependen de esas dependencias:
 
Para eliminar un paquete, sus dependencias y todos los paquetes que dependen de esas dependencias:
  
{{Advertencia|Esta operación es recursiva, y debe utilizarse con precaución, ya que puede eliminar muchos paquetes potencialmente necesarios.}}
+
{{Advertencia|esta operación es recursiva, y debe utilizarse con precaución, ya que puede eliminar muchos paquetes potencialmente necesarios.}}
  
 
  # pacman -Rsc ''nombre_paquete''
 
  # pacman -Rsc ''nombre_paquete''
Line 177: Line 126:
 
  # pacman -Rdd ''nombre_paquete''
 
  # pacman -Rdd ''nombre_paquete''
  
Pacman guarda los archivos de configuración importantes al quitar ciertas aplicaciones y los renombra con la extensión: {{ic|.pacsave}}. Para evitar la creación de estos archivos de backup utilice la opción {{ic|-n}}:
+
''pacman'' guarda los archivos de configuración importantes al quitar ciertas aplicaciones y los renombra con la extensión: ''.pacsave''. Para evitar la creación de estos archivos de respaldo utilice la opción {{ic|-n}}:
  
 
  # pacman -Rn ''nombre_paquete''
 
  # pacman -Rn ''nombre_paquete''
  
{{Note|Pacman no eliminará las configuraciones creadas de la aplicación misma (por ejemplo "dotfiles" (archivos que comienzan con un punto) en la carpeta home).}}
+
{{Nota|''pacman'' no eliminará las configuraciones creadas por la aplicación misma (por ejemplo los «dotfiles» —archivos que comienzan con un punto— presentes en la carpeta personal [''«home»'']).}}
  
 
===Actualizar paquetes===
 
===Actualizar paquetes===
Pacman puede actualizar todos los paquetes del sistema con un solo comando. Esto proceso puede durar bastante tiempo dependiendo de cuánto tiempo haya estados sin actualizar el sistema. Este comando puede sincronizar las bases de datos de los repositorios ''y'' actualizar los paquetes del sistema (excluyendo paquetes "locales"  que no están en los repositorios configurados):
 
  
# pacman -Syu
+
{{Advertencia|
 +
*se espera que los usuarios se ilustren con la sección [[System maintenance#Upgrading the system]] para actualizar sus sistemas regularmente y no ejecuten a ciegas la orden de abajo;
 +
*Arch solo admite actualizaciones completas del sistema. Vea [[System maintenance#Partial upgrades are unsupported]] y [[#Instalar paquetes]] para obtener más detalles.}}
  
{{Advertencia|En lugar de actualizar inmediatamente tan pronto como las actualizaciones están disponibles, los usuarios deben tener presente que siendo Arch un distribución rolling release, una actualización puede tener consecuencias imprevistas. Esto significa que no es prudente actualizar si, por ejemplo, se necesitará tener el sistema estable por motivos de trabajo. Más bien, actualizar durante el tiempo libre y estar preparados para hacer frente a cualquier problema que pueda surgir.}}
+
''pacman'' puede actualizar todos los paquetes del sistema con una sola orden. Esto proceso puede durar bastante dependiendo de cuánto tiempo haya estado el sistema sin actualizar. La siguiente orden sincroniza las bases de datos de los repositorios ''y'' actualiza los paquetes del sistema (excluyendo los paquetes «locales» que no estén en los repositorios configurados):
  
Pacman es una potente herramienta de gestión de paquetes, pero no está diseñado para gestionar y resolver automáticamente cada posible problema. Consulte [[The Arch Way (Español)]] si esto causa confusión. Los usuarios deben estar alerta y tomar la responsabilidad del mantenimiento de su propio sistema. '''Cuando se realiza una actualización del sistema, es esencial que los usuarios lean toda la información generada por la salida de pacman y usen el sentido común.''' Si un archivo de configuración modificado por el usuario debe ser actualizado por una nueva versión de un paquete, pacman creará un archivo {{ic|.pacnew}} para evitar sobrescribir los ajustes modificados por el usuario. Pacman le pedirá, a continuación, al usuario que combine ambos archivos. Estos archivos requieren una intervención manual por parte del usuario y es una buena práctica hacerlo inmediatamente después de cada actualización o eliminación de paquetes. Véase  [[Pacnew and Pacsave Files]] para más información.
+
# pacman -Syu
  
{{Sugerencia|Recuerde que la salida de pacman se registra en el archivo {{ic|/var/log/pacman.log}}.}}
+
=== Consultar la base de datos de los paquetes ===
  
Antes de actualizar, se recomienda visitar la [https://www.archlinux.org/ home page de Arch Linux] para comprobar las últimas noticias (o suscribirse al feed RSS): cuando la actualización requiera la intervención extraordinaria del usuario (más allá de lo que puede ser manejado simplemente siguiendo las instrucciones dadas por pacman), se hará un news post apropiado.
+
''pacman'' puede consultar la base de datos de los paquetes presentes en el sistema con la opción {{ic|-Q}}, las bases de datos de los servidores remotos con la opción {{ic|-S}} y los archivos presentes en dichas bases con la opión {{ic|-F}}. Vea {{ic|pacman -Q --help}}, {{ic|pacman -S --help}} y {{ic|pacman -F --help}} para conocer las subopciones respectivas de cada opción.
  
Si se encuentra con problemas que no pueden ser resueltos por estas instrucciones, asegúrese de buscar en el foro. Es probable que otros hayan encontrado el mismo problema y hayan publicado instrucciones para resolverlo.
+
''pacman'' puede buscar paquetes en la base de datos, la búsqueda se realiza tanto por los nombres como por las descripciones de los paquetes:
  
=== Consultar la base de datos de paquetes ===
+
$ pacman -Ss ''cadena1'' ''cadena2'' ...
  
Pacman puede consultar la base de datos local de los paquetes con la opción {{ic|-Q}}; véase:
+
Algunas veces {{Ic|-s}} construye una ERE (Expresión Regular Extendida) que puede causar resultados no deseados, por lo cual debe limitarse para que coincida con el nombre del paquete y no con la descripción u otro campo:
  
  $ pacman -Q --help
+
  $ pacman -Ss '^vim-'
  
y puede consultar las bases de datos sincronizadas con la opción {{ic|-S}}; véase:
+
Para buscar paquetes ya instalados:
  
  $ pacman -S --help
+
  $ pacman -Qs ''cadena1'' ''cadena2'' ...
  
Pacman puede buscar paquetes en la base de datos, la búsqueda se realiza tanto por los nombres como por las descripciones de los paquetes:
+
Para buscar nombres de archivos de paquetes en los paquetes de los servidores remotos:
  
  $ pacman -Ss ''cadena1'' ''cadena2'' ...
+
  $ pacman -Fs ''cadena1'' ''cadena2'' ...
 
 
Para buscar paquetes ya instalados:
 
 
 
$ pacman -Qs ''cadena1'' ''cadena2'' ...
 
  
 
Para mostrar información detallada acerca de un determinado paquete:
 
Para mostrar información detallada acerca de un determinado paquete:
Line 220: Line 166:
 
  $ pacman -Si ''nombre_paquete''
 
  $ pacman -Si ''nombre_paquete''
  
Para los paquetes instalados localmente:
+
Para conocer los paquetes instalados en el sistema:
  
 
  $ pacman -Qi ''nombre_paquete''
 
  $ pacman -Qi ''nombre_paquete''
  
Pasando la doble opción {{ic|-i}} también se mostrará la lista de archivos de backup y sus estados de modificación:
+
Pasando la doble opción {{ic|-i}} también se mostrará la lista de archivos de respaldo y sus estados de modificación:
  
 
  $ pacman -Qii ''nombre_paquete''
 
  $ pacman -Qii ''nombre_paquete''
Line 232: Line 178:
 
  $ pacman -Ql ''nombre_paquete''
 
  $ pacman -Ql ''nombre_paquete''
  
Para los paquetes no instalados, utilice [[pkgfile]].
+
Para obtener un listado de los archivos instalados por un paquete recibido desde un servidor remoto:
  
También se puede consultar la base de datos para saber qué paquete pertenece a un determinado archivo del sistema:
+
$ pacman -Fl ''nombre_paquete''
 +
 
 +
Para verificar la presencia de los archivos instalados por un paquete:
 +
 
 +
$ pacman -Qk ''nombre_paquete''
 +
 
 +
Pasando la opción {{ic|k}} dos veces, se realizará un chequeo más exhaustivo.
 +
 
 +
Para consultar la base de datos para saber a qué paquete pertenece un archivo del sistema de archivos:
  
 
  $ pacman -Qo ''/ruta/al/nombre_del_archivo''
 
  $ pacman -Qo ''/ruta/al/nombre_del_archivo''
  
Para listar todos los paquetes que no sean necesarios como dependencias (huérfanos):
+
Para consultar la base de datos para saber a qué paquete del servidor remoto pertenece un archivo:
 +
 
 +
$ pacman -Fo ''/ruta/al/nombre_del_archivo''
 +
 
 +
Para enumerar todos los paquetes que no sean necesarios como dependencias (huérfanos):
  
 
  $ pacman -Qdt
 
  $ pacman -Qdt
  
Para listar el árbol de dependencias de un paquete:
+
Para enumerar todos los paquetes explícitamente instalados y no requeridos como dependencias:
 +
 
 +
$ pacman -Qet
 +
 
 +
Para enumerar el árbol de dependencias de un paquete:
  
 
  $ pactree ''nombre_paquete''
 
  $ pactree ''nombre_paquete''
  
Para listar todos los paquetes que dependen de un específico paquete, utilice {{ic|whoneeds}} de [[pkgtools]]:
+
Para enumerar todos los paquetes que dependen de un paquete específico, utilice ''whoneeds'' de {{AUR|pkgtools}}:
  
 
  $ whoneeds ''nombre_paquete''
 
  $ whoneeds ''nombre_paquete''
  
=== Comandos adicionales ===
+
o la opción inversa ''pactree'':
  
Actualizar el sistema e instalar una lista de paquetes (una sola línea):
+
$ pactree -r ''nombre_paquete''
  
  # pacman -Syu ''nombre_paquete1'' ''nombre_paquete2'' ...
+
Véase [[Pacman/Tips and tricks]] para conocer más ejemplos.
 +
 
 +
==== Pactree ====
 +
 
 +
Para ver el árbol de dependencias de un paquete:
 +
 
 +
$ pactree ''package_name''
 +
 
 +
Para ver el árbol dependiente de un paquete, pase la bandera inversa {{ic|-r}} a ''pactree'', o use ''whoneeds'' desde {{AUR|pkgtools}}.
 +
 
 +
==== Estructura de la base de datos ====
 +
 
 +
Las bases de datos de pacman se encuentran, normalmente, en {{ic|/var/lib/pacman/sync}}. Para cada repositorio especificado en {{ic|/etc/pacman.conf}} habrá su correspondiente archivo de base de datos ubicado allí. Los archivos de base de datos son archivos en formato tar-gzip que contienen un directorio para cada paquete, por ejemplo para el paquete {{Pkg|which}}:
 +
 
 +
{{bc|
 +
% tree which-2.20-6
 +
which-2.20-6<nowiki>
 +
|-- depends
 +
`-- desc</nowiki>
 +
}}
 +
 
 +
El archivo {{ic|depends}} enumera los paquetes de los que depende este paquete, mientras que el archivo {{ic|desc}} contiene una descripción del paquete, como el tamaño del archivo y el hash MD5.
 +
 
 +
===  Limpiar la memoria caché de los paquetes ===
 +
 
 +
''pacman'' almacena los paquetes descargados en {{ic|/var/cache/pacman/pkg/}} y no elimina las versiones antiguas o desinstaladas automáticamente, por lo tanto, es necesario limpiar a drede esa carpeta periódicamente para evitar que la misma crezca indefinidamente.
 +
 
 +
La opción integrada para eliminar todos los paquetes de la memoria caché que no están instalados es:
 +
 
 +
  # pacman -Sc
 +
 
 +
{{Advertencia|
 +
* haga esto únicamente cuando esté seguro de que no se requieren versiones anteriores de paquetes, por ejemplo para un [[downgrade]] posterior. {{ic|pacman -Sc}} solo deja disponibles las versiones de los paquetes que están ''actualmente instalados'', las versiones anteriores tendrían que ser recuperadas por otros medios, como [[Arch Linux Archive]];
 +
* es posible vaciar completamente la carpeta de la caché con {{ic|pacman -Scc}}. Además de lo anterior, esto también impide la reinstalación de un paquete directamente ''desde'' la carpeta de la caché, requiriendo, en caso de necesidad, de una nueva descarga. Debe evitarse, a menos que se necesite recuperar inmediatemente espacio en el disco.
 +
}}
 +
 
 +
Debido a las limitaciones anteriores, considere el uso de una alternativa que le permita más control sobre qué paquetes y cuántos desea eliminar de la memoria caché:
 +
 
 +
el script ''paccache'', proporcionado por el propio paquete {{Pkg|pacman}}, elimina todas las versiones de cada paquete presentes en la memoria caché, independientemente de si están instaladas o no, excepto las 3 más recientes, de forma predeterminada:
 +
 
 +
# paccache -r
 +
 
 +
{{Sugerencia|1=puede crear [[pacman hooks|hooks de pacman]] para ejecutarlos automáticamente después de cada operación de pacman. Consulte [https://bbs.archlinux.org/viewtopic.php?pid=1694743#p1694743 este hilo] para conocer ejemplos.}}
 +
 
 +
También puede definir cuántas versiones recientes desea conservar:
 +
 
 +
# paccache -rk 1
 +
 
 +
Para eliminar de la memoria caché todas las versiones de los paquetes desinstalados, vuelva a ejecutar ''paccache'' con:
 +
 
 +
# paccache -ruk0
 +
 
 +
Vea {{ic|paccache -h}} para conocer más opciones.
 +
 
 +
{{AUR|pkgcacheclean}} y {{AUR|pacleaner}} son dos alternativas más.
 +
 
 +
=== Órdenes adicionales ===
  
 
Descargar un paquete sin instalarlo:
 
Descargar un paquete sin instalarlo:
Line 260: Line 278:
 
  # pacman -Sw ''nombre_paquete''
 
  # pacman -Sw ''nombre_paquete''
  
Instale un paquete 'local' que no proviene de un repositorio remoto (por ejemplo, el paquete viene de [[Arch User Repository|AUR]]):
+
Instalar un paquete 'local' que no proviene de un repositorio remoto (por ejemplo, el paquete viene de [[AUR]]):
  
 
  # pacman -U /ruta/al/paquete/nombre_paquete-versión.pkg.tar.xz
 
  # pacman -U /ruta/al/paquete/nombre_paquete-versión.pkg.tar.xz
  
Instale un paquete 'remoto' (no de un repositorio indicado en los archivos de configuración de pacman):
+
Para mantener una copia del paquete local en la caché de ''pacman'', utilice:
 +
 
 +
# pacman -U file://ruta/al/paquete/nombre_paquete-versión.pkg.tar.xz
 +
 
 +
Instalar un paquete 'remoto' (no de un repositorio indicado en los archivos de configuración de pacman):
  
 
  # pacman -U <nowiki>http://www.ejemplo.com/repo/ejemplo.pkg.tar.xz</nowiki>
 
  # pacman -U <nowiki>http://www.ejemplo.com/repo/ejemplo.pkg.tar.xz</nowiki>
  
Para limpiar la caché de los paquetes descargados que no han sido instalados ({{ic|/var/cache/pacman/pkg}}):
+
Para inhibir las acciones derivadas de {{ic|-S}}, {{ic|-U}} y {{ic|-R}}, puede utilizarse {{ic|-p}}.
 +
 
 +
''pacman'' siempre enumerará los paquetes que se van a instalar o eliminar y pedirá permiso antes de realizar la acción.
 +
 
 +
=== Motivo de la instalación ===
 +
 
 +
La base de datos de ''pacman'' diferencia los paquetes instalados en dos grupos, de acuerdo a la razón por la que fueron instalados:
 +
 
 +
* '''explicitly-installed''': (instalado explícitamente), son aquellos paquetes que se instalaron con una orden genérica de ''pacman'' como {{ic|-S}} o {{ic|-U}};
 +
* '''dependencies''': (dependencias), son aquellos paquetes que, pese a que nunca se pasaron (en general) por una orden de instalación de ''pacman'', fueron implícitamente instalados porque eran [[dependency|requeridos]] por otro paquete que fue explícitamente instalado.
 +
 
 +
Al instalar un paquete, es posible forzar su motivo de instalación a ''dependency'' con:
 +
 
 +
# pacman -S --asdeps ''nombre_paquete''
 +
 
 +
Cuando se '''re'''instala un paquete, no obstante, el motivo de instalación establecido se conserva de forma predeterminada.
 +
 
 +
La lista de paquetes explícitamente instalados se puede mostrar con {{ic|pacman -Qe}}, mientras que la lista complementaria de dependencias se puede mostrar con {{ic|pacman -Qd}}.
 +
 
 +
Para cambiar el motivo de la instalación de un paquete ya instalado, ejecute:
 +
 
 +
# pacman -D --asdeps ''nombre_paquete''
 +
 
 +
Utilice {{ic|--asexplicit}} para realizar la operación opuesta.
 +
 
 +
{{Sugerencia|instalar dependencias opcionales con {{ic|--asdeps}} hará que, si se [[Pacman/Tips_and_tricks#Removing_unused_packages_.28orphans.29|eliminan paquetes huérfanos]], ''pacman'' también elimine estos restos de dependencias opcionales.}}
 +
 
 +
=== Buscar un paquete que contenga un archivo específico ===
 +
 
 +
Sincronice la base de datos de archivos:
 +
 
 +
# pacman -Fy
 +
 
 +
Busque un paquete que contenga un archivo, por ejemplo:
 +
 
 +
# pacman -Fs pacman
 +
core/pacman 5.0.1-4
 +
    usr/bin/pacman
 +
    usr/share/bash-completion/completions/pacman
 +
extra/xscreensaver 5.36-1
 +
    usr/lib/xscreensaver/pacman
 +
 
 +
{{Sugerencia|puede configurar un trabajo cron o un temporizador de systemd para sincronizar la base de datos de archivos regularmente.}}
 +
 
 +
Para obtener funcionalidades avanzadas instale [[pkgfile]], que utiliza una base de datos separada con todos los archivos y sus paquetes asociados.
 +
 
 +
== Configuración ==
 +
 
 +
La configuración de ''pacman'' se encuentra en el archivo {{ic|/etc/pacman.conf}}. Este es el archivo donde el usuario configura el programa para que funcione de la manera deseada. Se puede encontrar  información en profundidad sobre el archivo de configuración en {{man|5|pacman.conf}}.
 +
 
 +
=== Opciones generales ===
 +
 
 +
Las opciones generales están en la sección {{ic|[options]}}. Lea la página del manual de {{man|8|pacman}} o eche un vistazo al archivo predefinido {{ic|pacman.conf}} para obtener información adicional.
 +
 
 +
==== Comparar versiones antes de actualizar ====
 +
 
 +
Para ver versiones antiguas y nuevas de paquetes disponibles, descomente la línea «VerbosePkgLists» en{{ic|/etc/pacman.conf}}.La salida de {{ic|pacman -Syu}} se verá así:
 +
 
 +
Package (6)             Old Version  New Version  Net Change  Download Size
 +
 +
extra/libmariadbclient  10.1.9-4    10.1.10-1      0.03 MiB      4.35 MiB
 +
extra/libpng            1.6.19-1    1.6.20-1      0.00 MiB      0.23 MiB
 +
extra/mariadb          10.1.9-4    10.1.10-1      0.26 MiB      13.80 MiB
 +
 
 +
==== Evitar la actualización de un paquete ====
 +
 
 +
{{Advertencia|tenga cuidado al omitir paquetes, ya que, como sabe, no son posibles las [[partial upgrades|actualizaciones parciales]].}}
 +
 
 +
Para omitir la actualización de un paquete en particular cuando vaya a [[#Actualizar paquetes|actualizar]] el sistema, debe especificarlo así:
  
{{Advertencia|Haga esto sólo si está seguro de que los paquetes instalados son estables y que una eventual [[Downgrading Packages|downgrade]] no será necesaria, ya que se eliminarán todas las versiones anteriores de la carpeta de la caché, dejando sólo las versiones de los paquetes que están instalados actualmente. Tener la versión antigua en el sistema es muy útil para el caso de que una futura actualización cause roturas, porque usted tiene los paquetes que funcionan directamente en su sistema, listos para ser instalados.}}
+
IgnorePkg=linux
  
  # pacman -Sc
+
Para ignorar la actualización de varios paquetes, utilice una lista separada por espacios, o utilice líneas adicionales de {{ic|IgnorePkg}}. También se pueden utilizar la sintaxis ''«glob patterns»''. Si desea omitir paquetes pero solo una vez, puede utilizar la opción {{ic |--ignore}} en la línea de órdenes, esta vez con una lista separada por comas.
 +
 
 +
Aún será posible actualizar los paquetes ignorados usando {{ic|pacman -S}}: en este caso ''pacman'' le recordará que los paquetes han sido incluidos en una declaración de {{ic|IgnorePkg}}.
 +
 
 +
==== Evitar la actualización de un grupo de paquetes ====
 +
 
 +
{{Advertencia|tenga cuidado al omitir grupo de paquetes, ya que, como sabe, no son posibles las [[partial upgrades|actualizaciones parciales]].}}
 +
 
 +
Al igual que con los paquetes, saltarse un grupo de paquetes completo también es posible:
 +
 
 +
IgnoreGroup=gnome
 +
 
 +
==== Evitar la instalación de archivos en el sistema ====
 +
 
 +
Para ignorar siempre la instalación de archivos o directorios específicos, enumérelos en {{Ic|NoExtract}}. Por ejemplo, para evitar la instalación de unidades de [[systemd (Español)|systemd]], proceda así:
 +
 
 +
  NoExtract=usr/lib/systemd/system/*
 +
 
 +
Las reglas posteriores anulan las anteriores, pero se puede negar una regla añadiéndole el signo {{ic|!}}.
 +
 
 +
{{Sugerencia|''pacman'' emite mensajes de advertencia sobre locales que faltan al actualizar un paquete para el cual los locales han sido eliminados por ''localepurge'' o ''bleachbit''. Comentando la opción {{ic|CheckSpace}} en {{ic|pacman.conf}} hace que se supriman tales advertencias, pero tenga en cuenta que la función de comprobación del espacio disponible en disco estará desactivada para todos los paquetes.}}
 +
 
 +
==== Mantener varios archivos de configuración ====
  
Limpie el cache completamente de todos los paquetes:
+
Si tiene varios archivos de configuración (por ejemplo, configuración principal y configuración para el repositorio [[testing]] activado) y quiere compartir las opciones entre dichas configuraciones, puede utilizar la declaración {{ic|Include}} de los archivos de configuración, por ejemplo:
  
{{Advertencia|Esta operación borra la memoria caché por completo de todos los paquetes. Esta método se considera una mala práctica, porque si alguna vez necesita ejecutar el downgrade, no será capaz de hacerlo desde la carpeta de la caché. Probablemente tendrá que usar el [[Downgrading Packages#ARM|Arch Rollback Machine]].}}
+
Include = ''/ruta/a/configuraciones/comunes''
  
# pacman -Scc
+
Donde el archivo {{ic|''/ruta/a/configuraciones/comunes''}} contiene las mismas opciones para ambas configuraciones.
  
{{Sugerencia|Como una alternativa tanto a la modalidad {{ic|-Sc}} como a {{ic|-Scc}},  considere la posibilidad de usar {{ic|paccache}} en {{pkg|pacman-contrib}}. Este script ofrece un mayor control sobre qué y cuántos paquetes serán eliminados. Ejecute {{ic|paccache -h}} para obtener instrucciones.}}
+
==== Hooks ====
  
=== Las actualizaciones parciales no son soportadas ===
+
''pacman'' puede ejecutar hooks antes y después de la transacción, desde el directorio {{ic|/usr/share/libalpm/hooks/}}; se pueden especificar más directorios con la opción {{ic|HookDir}} en {{ic|pacman.conf}}, cuya ruta por defecto es {{ic|/etc/pacman.d/hooks}}. Los nombres de los archivos hooks deben tener el sufijo ''.hook''.
  
Arch Linux es rolling release, y las nuevas versiones de  [[Wikipedia:Library (computing)|bibliotecas]] serán añadidas a los repositorios. Los Desarrolladores y los Trusted Users recompilarán consecuentemente todos los paquetes de los repositorios. Si el sistema se ha instalado con paquetes locales (como paquetes de [[Arch User Repository|AUR]]), los usuarios necesitarán recompilar sus dependencias cuando modifiquen a nivel [[Wikipedia:soname|soname]].
+
Para obtener más información sobre los hooks de alpm, consulte {{man|5|alpm-hooks}}.
  
Esto significa que las actualizaciones parciales '''no están soportadas'''. No utilice {{ic|pacman -Sy paquete}} o cualquier equivalente como {{ic|pacman -Sy}} y luego {{ic|pacman -S paquete}}. Actualice siempre el sistema antes de instalar un paquete, especialmente si previamente se ha ejecutado una sincronización con los repositorios. Tenga mucho cuidado al usar {{ic|IgnorePkg}} y {{ic|IgnoreGroup}} por la misma razón.
+
=== Repositorios y servidores de réplicas ===
  
Si se ha ejecutado una actualización y los binarios están rotos porque no pueden encontrar las bibliotecas correctas, '''no pruebe a "arreglar" el problema simplemente creando enlaces simbólicos'''. Las bibliotecas recibidas modifican [[Wikipedia:soname|soname]] cuando '''no son compatibles con versiones anteriores'''. Un simple {{ic|pacman -Syu}} a un mirror correctamente sincronizado solucionará el problema, siempre y cuando pacman no esté roto.
+
Además de la sección especial [[#Opciones generales|[options]]], cada valor {{ic|[section]}} en {{ic|pacman.conf}} define un repositorio de paquetes para ser utilizado. Un «repositorio» es una colección «lógica» de paquetes, los cuales están «físicamente» almacenados en uno o más servidores: por esta razón cada servidor se llama «espejo» (mirror) del repositorio.
  
== Solución de problemas ==
+
Los repositorios se dividen en [[Official repositories|oficiales]] y [[Unofficial user repositories|no oficiales]]. El orden de los repositorios en el archivo de configuración es importante; los repositorios listados primero en dicho archivo de configuración tendrán prioridad sobre los listados más adelante respecto de los paquetes presentes en dos repositorios cuando estos tengan nombres idénticos, independientemente del número de versión. Para usar un repositorio después de agregarlo, necesitará primero [[#Actualizar paquetes|actualizar]] todo el sistema.
  
{{FAQ
+
Cada sección del repositorio permite definir la lista de sus servidores de réplicas, bien directamente, bien en un archivo externo dedicado a través de la directiva {{ic|Include}}: por ejemplo, los servidores de réplicas de los repositorios oficiales están incluidos en {{ic|/etc/pacman.d/mirrorlist}}. Vea el artículo [[Mirrors]] para la configuración de los servidores de réplicas.
|question=¡Una actualización de un paquete XYZ me rompió el sistema!
 
|answer=Arch Linux es una distribución rolling-release vanguardista. Las actualizaciones de los paquete están disponibles tan pronto como se les considera lo suficientemente estable para su uso general. Sin embargo, las actualizaciones a veces requieren la intervención del usuario: algunos archivos de configuración puede que requieran ser actualizados, las dependencias opcionales pueden cambiar, etc.
 
  
El consejo más importante a recordar es que no actualice "a ciegas" el sistema. Lea siempre la lista de paquetes que vayan a ser actualizados. Preste atención si hay paquetes "sensibles" que van a ser actualizados ({{ic|linux}}, {{ic|xorg-server}}, y así sucesivamente). Si es así, por lo general, es una buena idea comprobar si hay alguna novedad en https://www.archlinux.org/ y buscar mensajes en el foro para ver si los usuarios están experimentando problemas como resultado de una actualización.
+
==== Seguridad de los paquetes ====
  
Si una actualización de paquetes se espera que (o se conoce por) causar problemas, los responsables del paquete se asegurarán de que pacman muestre un mensaje apropiado cuando el paquete se haya actualizado. Si experimenta problemas después de una actualización, compruebe la salida de pacman mirando el archivo del registro ({{ic|/var/log/pacman.log}}).
+
''pacman'' soporta firmas de los paquetes, que añaden una capa adicional de seguridad a los mismos. La configuración por defecto, {{ic|1=SigLevel = Required DatabaseOptional}}, permite la verificación de las firmas para todos los paquetes a nivel global: esto puede ser anulado en la línea {{ic|SigLevel}} de cada repositorio en cuestión. Para conocer más detalles sobre la firma de paquetes y la verificación de firma, eche un vistazo a [[pacman-key]].
  
En este punto, '''una vez se ha asegurado de que no existe información disponible a través de pacman, que no hay ninguna noticia relativa al tema en https://www.archlinux.org/, y que no hay publicaciones en el foro acerca de la actualización''', se puede considerar la posibilidad de o bien solicitar ayuda en el foro, a través del canal [[IRC Channel|IRC]], o bien optar por [[Downgrading Packages|degradar el paquete problemático]].}}
+
== Solución de problemas ==
  
{{FAQ
+
=== Error «Failed to commit transaction (conflicting files)» ===
|question=¡Conozco un paquete de actualización para ABC que fue liberado, pero pacman dice que mi sistema está al día!
 
|answer=Los mirrors de pacman no se sincronizan inmediatamente. Pueden tardar más de 24 horas antes de que una actualización esté disponible. Las únicas opciones son esperar o usar otro mirror. [MirrorStatus https://www.archlinux.org/mirrors/status/] puede ayudar a identificar un mirror actualizado.}}
 
  
{{FAQ
+
Si ve el error siguiente: [https://bbs.archlinux.org/viewtopic.php?id=56373]
|question=Me sale el siguiente error en la actualización: "file exists in filesystem"!
 
|answer=ASIDE: ''Tomado de https://bbs.archlinux.org/viewtopic.php?id=56373 por Misfit138.''
 
  
 
  error: could not prepare transaction
 
  error: could not prepare transaction
 
  error: failed to commit transaction (conflicting files)
 
  error: failed to commit transaction (conflicting files)
  package: /path/to/file exists in filesystem
+
  ''package'': ''/path/to/file'' exists in filesystem
 
  Errors occurred, no packages were upgraded.
 
  Errors occurred, no packages were upgraded.
  
Por qué está sucediendo esto: pacman ha detectado un conflicto de archivos, y por diseño, no sobrescribirá los archivos. Esta es una característica de diseño, no un defecto.
+
Esto sucede porque ''pacman'' ha detectado un conflicto de archivos, y por diseño, no sobrescribirá los archivos por usted. Esta es una característica de diseño, no un defecto.
 +
 
 +
El problema es generalmente trivial de resolver. Una forma segura es comprobar primero si el archivo pertenece a otro paquete ({{ic|pacman -Qo ''/path/to/file''}}). Si el archivo es propiedad de otro paquete, [[Reporting bug guidelines|informe de un error de archivo]]. Si el archivo no es propiedad de otro paquete, cambie el nombre del archivo que existe en el sistema de archivos y vuelva a emitir la orden de actualización. Si todo va bien, el archivo puede ser eliminado.
 +
 
 +
Si ha instalado un programa manualmente sin usar ''pacman'' o utilizando un frontend, por ejemplo a través de {{ic|make install}}, tiene que quitarlo con todos sus archivos, y volver a instalarlo correctamente usando ''pacman''. Véase también  [[Pacman tips#Identify files not owned by any package]].
  
La cuestión es generalmente trivial de resolver. Una forma segura es comprobar primero si el archivo pertenece a otro paquete ({{ic|pacman -Qo /ruta/al/archivo}}). Si el archivo es propiedad de otro paquete, [[Reporting Bug Guidelines|reporte un informe de error]]. Si el archivo no es propiedad de otro paquete, cambie el nombre del archivo al que se refiere 'exists in filesystem' y vuelva a emitir el comando de actualización. Si todo va bien, el archivo puede ser eliminado.
+
Cada paquete instalado proporciona un archivo {{ic|/var/lib/pacman/local/''$paquete-$versión''/files}} que contiene metadatos sobre este paquete. Si este archivo se daña, está vacío o se pierde, produce errores del tipo {{ic|file exists in filesystem}} al intentar actualizar el paquete. Este tipo de error suele referirse solo a un paquete. En lugar de renombrar manualmente y eliminar posteriormente todos los archivos que pertenecen al paquete en cuestión, puede ejecutar excepcionalmente {{ic|pacman -S --force $paquete}} para forzar a ''pacman'' a sobrescribir estos archivos.
  
Si ha instalado un programa manualmente sin usar pacman o usando una interfaz gráfica, hay que quitarlo y todos sus archivos y volver a instalarlo correctamente usando pacman.
+
{{Advertencia|tenga cuidado cuando utilice el parámetro {{ic|--force}} (por ejemplo {{ic|pacman -Syu --force}}) ya que puede causar problemas importantes si se utiliza incorrectamente. Se recomienda encarecidamente que solo utilice esta opción cuando ''«Arch news»'' indique al usuario que lo haga.}}
  
Cada paquete instalado proporciona un archivo {{ic|/var/lib/pacman/local/$package-$version/files}} que contiene metadatos acerca de este paquete. Si este archivo se corrompe -está vacío o falta- el resultado es un error por "file exists in filesystem" (el archivo existe en el sistema de archivos) al intentar actualizar el paquete. Este error normalmente se refiere a un solo paquete y, en vez de cambiar el nombre manualmente y más tarde la eliminación de todos los archivos que pertenecen al paquete en cuestión, puede ejecutar {{ic|pacman -S --force $paquete}} para forzar a pacman a sobrescribir estos archivos.
+
=== Error «Failed to commit transaction (invalid or corrupted package)» ===
  
'''No''' ejecute {{ic|pacman -Syu --force}}.}}
+
Busque los archivos ''.part'' (paquetes parcialmente descargados) en  {{ic|/var/cache/pacman/pkg}} y elimínelos (a menudo causados por el uso de un parámetro {{ic|XferCommand}} personalizado en {{ic|pacman.conf}}).
  
{{FAQ
+
# find /var/cache/pacman/pkg/ -iname "*.part" -exec rm {} \;
|question=Me da el siguiente error al instalar un paquete: "not found in sync db"
 
|answer=En primer lugar, asegúrese de que el paquete existe realmente (¡y cuidado con los errores de ortografía!). Si el paquete realmente existe, su lista de paquetes puede estar desacctualizada o los repositorios estar configurados de forma incorrecta. Pruebe ejecutando {{ic|pacman -Syy}} para forzar una actualización de todas las listas de paquetes.}}
 
  
{{FAQ
+
=== Error «Failed to init transaction (unable to lock database)» ===
|question=¡Pacman me pregunta repetidamente por la actualización del mismo paquete!
 
|answer=Esto se debe a las entradas duplicadas en {{ic|/var/lib/pacman/local/}}, por ejemplo dos versiones de {{ic|linux}}. {{ic|pacman -Qi}} emite la versión correcta, pero {{ic|pacman -Qu}} reconoce la versión anterior, por lo que intentará actualizar.
 
  
Solución: elimine la entrada en conflicto en {{ic|/var/lib/pacman/local/}}.
+
Cuando ''pacman'' está a punto de alterar las bases de datos de los paquetes, por ejemplo al instalar un paquete, crea un archivo de bloqueo en {{ic|/var/lib/pacman/db.lck}}. Esto evita que otra instancia de ''pacman'' intente alterar la base de datos al mismo tiempo.
  
{{Note|La versión 3.4 de pacman debería mostrar un error en caso de entradas duplicadas, lo que debería hacer esta nota obsoleta.}}}}
+
Si se interrumpe ''pacman'' mientras este altera la base de datos, este archivo de bloqueo obsoleto puede permanecer. Si está seguro de que no hay instancias de ''pacman'' ejecutándose, elimine el archivo de bloqueo:
  
{{FAQ
+
# rm /var/lib/pacman/db.lck
|question=¡Pacman se rompe durante una actualización!
 
|answer=En el caso de que pacman falle al "escribir la base de datos" mientras eliminaba paquetes, y volviendo a instalar o actualizar los paquetes, falla:
 
  
# Arranque el sistema utilizando el soporte de instalación de Arch.
+
=== Los paquetes no se pueden recibir en la instalación ===
# Monte el sistema de ficheros raíz (root).
 
# Actualice la base de datos a través de pacman {{ic|pacman -Syy}}.
 
# Vuelva a instalar el paquete roto a través de {{ic|pacman -r /ruta/a/root -S paquete}}.}}
 
  
{{FAQ
+
Este error se manifiesta como {{ic|Not found in sync db}}, {{ic|Target not found}} o {{ic|Failed retrieving file}}.
|question=He instalado software usando "make install"; ¡estos archivos no pertenece a ningún paquete!
 
|answer=Si recibe el mensaje de error "conflicting files" , tenga en cuenta que pacman sobreescribe el software que se instaló de forma manual si se ejecuta combinado con la opción {{ic|--force}} (por ejemplo ({{ic|pacman -S --force}}). Véase [[Pacman Tips#Identify files not owned by any package]] para un script que busca en el sistema de archivos archivos ''huérfanos''.
 
{{Advertencia|Tenga cuidado al usar la opción  {{ic|--force}} ya que puede causar graves problemas si se usa incorrectamente.}}}}
 
  
{{FAQ
+
En primer lugar, asegúrese de que el paquete existe realmente (¡y cuidado con los errores tipográficos!). Si ciertamente el paquete existe, es posible que la lista de paquetes esté desactualizada o que los repositorios estén configurados incorrectamente. Pruebe ejecutando {{ic|pacman -Syyu}} para forzar una actualización de todas las listas de paquetes y, seguidamente, actualizar el sistema.
|question=Necesito un paquete con un archivo específico. ¿Cómo puedo saber lo que ofrece?
 
|answer=Instale [[pkgfile]] que utiliza una base de datos independiente con todos los archivos y sus paquetes asociados.}}
 
  
{{FAQ
+
También podría ser que el repositorio  que contiene el paquete no esté activado en su sistema, por ejemplo, el paquete podría estar en el repositorio ''multilib'', pero el mismo no está activado en el archivo ''pacman.conf''.
|question=¡Pacman está completmente roto!. ¿Cómo puedo volver a reinstalarlo?
 
|answer=En el caso de que pacman se rompa sin remedio, descargue manualmente los paquetes necesarios ({{pkg|openssl}}, {{pkg|libarchive}} y {{pkg|pacman}}) y extráigalos a la raiz (root). Los binarios de pacman se restaurarán junto con su archivo de configuración por defecto. A continuación, vuelva a instalar estos paquetes con pacman para mantener la integridad de la base de datos de los paquetes. Información adicional y un script de ejemplo (desactualizado) que automatiza el proceso están disponibles en [https://bbs.archlinux.org/viewtopic.php?id=95007 este] post del foro.}}
 
  
{{FAQ
+
Consulte también: [[Frequently asked questions (Español)#¿Por qué hay solo una única versión de cada biblioteca compartida en los repositorios oficiales?|¿Por qué hay solo una única versión de cada biblioteca compartida en los repositorios oficiales?]]
|question= Después de actualizar mi sistema, me sale el siguiente error al reiniciar: "unable to find root device", y mi sistema ya no puede arrancar.
 
|answer=Muy probablemente su initramfs se rompió durante una actualización del kernel (el uso indebido de la opción {{ic|--force}} de pacman puede ser una causa). Usted tiene dos opciones:
 
  
'''1.''' Pruebe la entrada ''Fallback''.
+
=== Reinstalar manualmente pacman ===
  
: {{Sugerencia|En el caso de que haya eliminado esta entrada por el motivo que sea, siempre puede pulsar la tecla {{Keypress|Tab}} cuando el menú del gestor de arranque aparece (para Syslinux) o {{Keypress|e}} (para GRUB), cambiarle el nombre {{ic|initramfs-linux-fallback.img}} y presionar {{Keypress|Intro}} o {{Keypress|b}} (en función de su gestor de arranque) para arrancar con los nuevos parámetros.}}
+
{{Advertencia|es extremadamente fácil romper el sistema aún más utilizando este enfoque. Utilice esto como último recurso si el método descrito en la sección [[#pacman se bloquea durante una actualización]] no es una opción.}}
  
: Una vez que se inicia el sistema, ejecute este comando (para el  {{pkg|kernel linux}} de serie) ya sea desde la consola o desde un terminal para reconstruir la imagen initramfs:
+
Incluso si ''pacman'' está seriamente dañado, puede arreglarse manualmente descargando los paquetes más recientes y extrayéndolos a las ubicaciones correctas. Los pasos ásperos a realizar son:
  
: {{bc|# mkinitcpio -p linux}}
+
# determinar dependencias a instalar;
 +
# descargar cada paquete de un repositorio de réplica de su elección;
 +
# extraer cada paquete a la raíz del sistema;
 +
# reinstalar estos paquetes con {{ic|pacman -Sf}} para actualizar la base de datos del paquete;
 +
# hacer una actualización completa del sistema.
  
'''2.''' Si eso no funciona, a partir de la versión 2012 de Arch (CD/DVD o memoria USB stick), ejecute:
+
Si dispone de un sistema Arch operativo, puede ver la lista completa de dependencias con:
  
: {{Nota|Si usted no tiene una versión 2012 o si sólo tiene alguna otra distribución "live" de Linux disponible, puede efectuar [[chroot]] haciéndolo a la antigua usanza. Obviamente, sólo consistirá en escribir el guión que ejecuta {{ic|archi-chroot}}.}}
+
$ pacman -Q $(pactree -u pacman)
  
: {{bc|<nowiki>
+
pero es posible que solo tenga que actualizar algunas de ellas dependiendo de su problema. Un ejemplo de extracción de un paquete es:
# mount /dev/sdxY /mnt        #La partición raíz.
 
# mount /dev/sdxZ /mnt/boot    #Si utiliza una partición /boot.
 
# arch-chroot /mnt
 
# pacman -Syu mkinitcpio systemd linux</nowiki>}}
 
  
: Reinstalando el kernel (el paquete {{pkg|linux}}) automáticamente se volverá a generar la imagen initramfs con {{ic|mkinitcpio -p linux}}. No hay necesidad de hacer esto por separado.
+
# tar -xvpwf ''package.tar.xz'' -C / --exclude .PKGINFO --exclude .INSTALL
  
: A continuación, se recomienda que ejecute {{ic|exit}}, {{ic|umount /mnt/{boot,} }} y {{ic|reboot}}.}}
+
Observe el uso del parámetro {{ic|w}} para ejecutar la orden en modo interactivo. Ejecutar la orden de forma no interactiva es muy arriesgado, ya que podría terminar sobrescribiendo un archivo importante. También debe tener cuidado de extraer los paquetes en el orden correcto (es decir, dependencias primero). [https://bbs.archlinux.org/viewtopic.php?id=95007 Esta publicación del foro] contiene un ejemplo de este proceso en el que solo se rompen un par de dependencias de ''pacman''.
  
{{FAQ
+
=== pacman se bloquea durante una actualización ===
|question=Signature from "User <email@gmail.com>" is unknown trust, installation failed
 
|answer=Siga [[pacman-key#Resetting all the keys]].}}
 
  
{{FAQ
+
En el caso de que ''pacman'' se bloquee con un error de «database write» al eliminar paquetes, y, al intentar reinstalar o actualizar después otros paquetes, falla, haga lo siguiente:
|question=Sigo recibiendo un error de "failed to commit transaction (invalid or corrupted package)"
 
|answer=Busque los archivos {{ic|*.part}} (paquetes descargados parcialmente) en {{ic|/var/cache/pacman/pkg}} y elimínelos (a menudo causado por un uso personalizado de {{ic|XferCommand}} en {{ic|pacman.conf}}).}}
 
  
{{FAQ
+
# arranque Arch utilizando el soporte de instalación. Utilice preferentemente una imagen reciente que contenga una versión de pacman lo más coincidente con la de su sistema;
|question=Me da un error cada vez que utilizo pacman diciendo 'warning: current locale is invalid; using default "C" locale'. ¿Qué debo hacer?
+
# monte el sistema de archivos raíz del sistema, por ejemplo, {{ic|mount /dev/sdaX /mnt}} con privilegios de root, y compruebe que el montaje tenga suficiente espacio con {{ic|df -h}};
|answer=Como dice el mensaje de error, el entorno local no está configurado correctamente. Véase [[Locale (Español)]].}}
+
# monte también los sistemas de archivos proc y sysfs: {{ic|mount -t {proc,sysfs} /dev/sdaX {/mnt/proc, /mnt/sys} }};
 +
# si el sistema utiliza las ubicaciones por defecto de las bases de datos y directorios, ahora puede actualizar la base de datos de pacman y actualizar el sistema con {{ic|1=pacman --root=/mnt --cachedir=/mnt/var/cache/pacman/pkg -Syyu}} como root;
 +
# después de la actualización, una forma de comprobar si hay paquetes no actualizados pero que aún están rotos, es con:  {{ic|find /mnt/usr/lib -size 0}};
 +
# por último, reinstale cualquier paquete roto con {{ic|1=pacman --root /mnt --cachedir=/mnt/var/cache/pacman/pkg -S ''paquete''}}.
 +
 
 +
=== Error «unable to find root device» después de reiniciar  ===
 +
 
 +
Lo más probable es que su imagen initramfs se haya roto durante una actualización del kernel (el uso inadecuado de la opción {{ic | --force}} de pacman puede ser una causa). Tiene dos opciones. En primer lugar, pruebe la entrada ''Fallback''.
 +
 
 +
{{Sugerencia|en caso de que haya eliminado la entrada ''Fallback'', siempre puede pulsar la tecla {{ic|Tab}} cuando aparezca el menú del gestor de arranque (para Syslinux) o {{ic|e}} (para GRUB o systemd-boot), renombrar la imagen a {{ic|initramfs-linux-fallback.img}} y presionar {{ic|Enter}} o {{ic|b}} (dependiendo de su gestor de arranque) para arrancar con los nuevos parámetros.}}
 +
 
 +
Una vez que el sistema se haya iniciado, ejecute la siguiente orden (para el kernel de {{Pkg|linux}} por defecto) desde la consola o desde un terminal para reconstruir la imagen initramfs:
 +
 
 +
# mkinitcpio -p linux
 +
 
 +
Si eso no funciona, desde una versión actual de Arch (CD/DVD o memoria USB), [[mount|monte]] las particiones root y boot. Luego [[chroot|enjaule]] el sistema utilizando ''arch-chroot'':
 +
 
 +
# arch-chroot /mnt
 +
# pacman -Syu mkinitcpio systemd linux
 +
 
 +
{{Nota|
 +
* si no tiene una versión actual de Arch o si solo dispone de otra distribución Linux «live», puede [[chroot|enjaular]] el sistema siguiendo la forma antigua. Obviamente, tendrá que escribir más que con la simple ejecución del script {{ic|arch-chroot}};
 +
* si ''pacman'' falla con el mensaje {{ic|Could not resolve host}},  [[Network_configuration#Check_the_connection|compruebe su conexión a Internet]];
 +
* si no puede entrar en el entorno arch-chroot o chroot, pero necesita reinstalar los paquetes, puede utilizar la orden {{ic|pacman -r /mnt -Syu foo bar}} para ejecutar ''pacman'' sobre la partición raíz del sistema.}}
 +
 
 +
Al reinstalar el kernel (el paquete {{Pkg|linux}}) se generará automáticamente la imagen initramfs con {{ic|mkinitcpio -p linux}}. No hay necesidad de hacerlo por separado.
 +
 
 +
Después, se recomienda ejecutar {{ic|exit}}, {{ic|umount /mnt/{boot,} }} y {{ic|reboot}}.
 +
 
 +
=== Signature from "User <email@gmail.com>" is unknown trust, installation failed ===
 +
 
 +
Puede intentar:
 +
* actualizar las claves conocidas, es decir, {{ic|pacman-key --refresh-keys}};
 +
* actualizar manualmente el paquete  {{Pkg|archlinux-keyring}} primero, es decir, ejecutando: {{ic|pacman -S archlinux-keyring}};
 +
* y, seguidamente, [[pacman-key#Resetting all the keys|restablecer todas las claves]].
 +
 
 +
=== Solicitud para importar las claves PGP ===
 +
 
 +
Si [[Installation guide|instala]] Arch con una ISO obsoleta, es probable que se le pida que importe las claves PGP. Acepte, para descargar las claves y poder continuar. Si no puede agregar la clave PGP correctamente, actualice el depósito de llaves o actualice {{Pkg|archlinux-keyring}} (vea [[#Signature from "User <email@gmail.com>" is unknown trust, installation failed|lo anterior]]).
 +
 
 +
=== Error: key "0123456789ABCDEF" could not be looked up remotely ===
 +
 
 +
Si los paquetes se firman con claves nuevas, las cuales se agregaron a última hora a {{Pkg|archlinux-keyring}}, estas claves no estarán disponibles localmente durante la actualización (el dilema del huevo o la gallina). El llavero {{Pkg|archlinux-keyring}} no contendrá las claves (nuevas) hasta que se actualice. Pacman trata de evitar esto mediante una búsqueda a través de un servidor de claves, lo que no siempre es posible, por ejemplo, si nos encontramos detrás de un proxy o un cortafuegos, lo que dará como resultado el error indicado. Actualice {{Pkg|archlinux-keyring}} primero como se indica [[#Signature from "User <email@example.org>" is unknown trust, installation failed|arriba]].
 +
 
 +
=== Signature from "User <email@archlinux.org>" is invalid, installation failed ===
 +
 
 +
Cuando la hora del sistema es errónea, las claves de firma se consideran caducadas (o no válidas) y las comprobaciones de firma en los paquetes fallarán con el siguiente error:
 +
 
 +
  error: ''package'': signature from "User <email@archlinux.org>" is invalid
 +
error: failed to commit transaction (invalid or corrupted package (PGP signature))
 +
Errors occured, no packages were upgraded.
 +
 
 +
Asegúrese de corregir la [[time|hora]], por ejemplo con {{ic|ntpd -qg}} ejecutado como root, y luego {{ic|hwclock -w}}, antes de realizar instalaciones o actualizaciones posteriores.
 +
 
 +
=== Error «Warning: current locale is invalid; using default "C" locale» ===
 +
 
 +
Como indica el mensaje de error, la configuración del idioma no está establecida correctamente. Vea [[Locale]].
 +
 
 +
=== pacman no respeta los ajustes del proxy ===
 +
 
 +
Asegúrese de que las variables de entorno relevantes ({{ic|$http_proxy}}, {{ic|$ftp_proxy}}, etc.) están configuradas. Si utiliza '' pacman '' con [[sudo (Español)|sudo]], debe configurar sudo para que [[sudo (Español)#Variables de entorno|pase estas variables de entorno a pacman]].
 +
 
 +
=== ¿Cómo reinstalar todos los paquetes, conservando la información sobre si algo se instaló explícitamente o como una dependencia? ===
 +
 
 +
Para reinstalar todos los paquetes nativos: {{ic|<nowiki>pacman -Qnq | pacman -S -</nowiki>}} (la opción {{ic|-S}} conserva el motivo de la instalación de forma predeterminada).
 +
 
 +
A continuación, tendrá que reinstalar todos los paquetes foráneos, que se pueden enumerar con {{ic|pacman -Qmq}}.
 +
 
 +
=== Error «Cannot open shared object file» ===
 +
 
 +
Este error se da cuando al ejecutar ''pacman'', este hubiera eliminado o dañado las bibliotecas compartidas del mismo pacman.
 +
 
 +
Para recuperarse de esta situación es necesario descomprimir manualmente en su sistema de archivos las bibliotecas necesarias. En primer lugar, busque qué paquete contiene la biblioteca perdida y, luego, localícela en la caché de ''pacman'' ({{ic|/var/cache/pacman/pkg/}}). Desempaquete la biblioteca compartida requerida por el sistema de archivos. Esto permitirá ejecutar ''pacman''.
 +
 
 +
Ahora necesita [[#Instalar paquetes específicos|reinstalar]] el paquete roto. Tenga en cuenta que necesita utilizar el parámetro {{ic|--force}} como si acabara de desempaquetar los archivos del sistema y ''pacman'' no lo supiera. ''pacman'' reemplazará correctamente nuestro archivo de biblioteca compartida con uno del paquete (reinstalado).
 +
 
 +
Hecho esto, actualice el resto del sistema.
 +
 
 +
=== Descarga de paquetes congelada ===
 +
 
 +
Se han reportado algunos problemas relacionados con problemas de red que impiden que ''pacman'' actualice o sincronice los repositorios. [https://bbs.archlinux.org/viewtopic.php?id&#61;68944] [https://bbs.archlinux.org/viewtopic.php?id&#61;65728]. Al instalar Arch Linux de forma nativa, estos problemas han sido resueltos remplazando el gestor de descargas de archivos ''pacman'' por defecto con otro alternativo (vea [[Improve pacman performance]] para obtener más detalles). Al instalar Arch Linux como SO invitado en [[VirtualBox]], este problema también se ha solucionado utilizando ''Host interface'' en lugar de ''NAT'' en las propiedades de la máquina.
 +
 
 +
=== Error al recuperar el archivo 'core.db' del servidor de réplica ===
 +
 
 +
Si recibe este mensaje de error con los [[mirrors]] correctos, intente establecer un [[Resolv.conf|servidor de nombres]] diferente.
  
 
== Véase también ==
 
== Véase también ==
* [[Common Applications/Utilities#Package management]]
+
 
 +
* [https://www.archlinux.org/pacman/ Pacman Home Page]
 +
* {{man|3|libalpm}}
 +
* {{man|8|pacman}}
 +
* {{man|5|pacman.conf}}
 +
* {{man|8|repo-add}}

Latest revision as of 04:45, 30 September 2018

Estado de la traducción
Este artículo es una traducción de pacman, revisada por última vez el 2017-10-08. Si advierte que la versión inglesa ha cambiado puede ayudar a actualizar la traducción, bien por usted mismo o bien avisando al equipo de traducción.

El gestor de paquetes pacman es una de las principales características distintivas de Arch Linux. Combina un simple formato de paquetes binarios con un fácil sistema de compilación de paquetes. El objetivo de pacman es hacer posible gestionar fácilmente los paquetes, tanto si son los de los repositorios oficiales de Arch como las compilaciones realizadas por los propios usuarios.

pacman mantiene el sistema actualizado mediante la sincronización con las listas de paquetes del servidor principal. Este modelo servidor/cliente le permite descargar y/o instalar paquetes con una simple orden y cubrir sus dependencias necesarias.

pacman está escrito en lenguaje de programación C y utiliza el formato tar para empaquetar.

Sugerencia: el paquete oficial pacman también contiene otras herramientas útiles, tales como makepkg, pactree, vercmp y checkupdates. Se puede obtener la lista completa de dichas herramientas con pacman -Qlq pacman | grep bin

Contents

Utilización

Lo que sigue es una pequeña muestra de las operaciones que se pueden realizar con pacman. Para leer más ejemplos, remítase a pacman(8).

Sugerencia: para aquellos usuarios que han utilizado antes otras distribuciones de Linux, el artículo Pacman Rosetta les puede resultar útil.

Instalar paquetes

Nota: los paquetes suelen tener dependencias opcionales, dependencias que proporcionan características adicionales a la aplicación, sin ser necesarias para su funcionamiento. Al instalar un paquete, pacman mostrará sus dependencias opcionales sin registrarlas en pacman.log: utilice la orden pacman -Si para ver las dependencias opcionales de un paquete así como una breve descripción de sus funcionalidades.
Advertencia: al instalar paquetes en Arch, evite actualizar la lista de paquetes sin actualizar el sistema (imagine, por ejemplo, el caso de un paquete que ya no se mantiene en los repositorios). En la práctica, no es aconsejable ejecutar pacman -Sy nombre_paquete, sino más bien pacman -Syu nombre_paquete, ya que la primera orden podría ocasionar problemas de dependencia. Consulte System maintenance#Partial upgrades are unsupported y BBS#89328.

Instalar paquetes específicos

Para instalar o actualizar un solo paquete o lista de paquetes (incluyendo las dependencias), ejecute la orden siguiente:

# pacman -S nombre_paquete1 nombre_paquete2 ...

Para instalar una lista de paquetes con una expresión regular (regex) (vea este hilo del foro):

# pacman -S $(pacman -Ssq expresion-regular_paquete)

A veces hay varias versiones de un paquete en diferentes repositorios, por ejemplo, extra y testing. Para instalar la versión precedente necesita especificar el nombre del repositorio:

# pacman -S extra/nombre_paquete

Para instalar un número de paquetes que comparten patrones similares en sus nombres —no todo el grupo ni todos los paquetes coincidentes— p.ej. plasma:

# pacman -S plasma-{desktop,mediacenter,nm}

Por supuesto, esto no está limitado y se puede ampliar a los niveles que sean necesarios:

# pacman -S plasma-{workspace{,-wallpapers},pa}

Instalar grupos de paquetes

Algunos paquetes pertenecen a un grupo de paquetes, los cuales se pueden instalar simultáneamente. Por ejemplo, emitiendo la orden:

# pacman -S gnome

el prompt le pedirá que seleccione los paquetes del grupo gnome que desea instalar.

En algunas ocasiones, un grupo contiene una gran cantidad de paquetes, y puede que solo le interese, o no desee instalar, unos pocos de ellos. En lugar de tener que introducir todos los números excepto los que no desea, quizás sea más conveniente, para seleccionar o excluir paquetes o intervalos de paquetes, la siguiente sintaxis:

Enter a selection (default=all): 1-10 15

que seleccionará los paquetes del 1 al 10 y 15 para la instalación, o bien:

Enter a selection (default=all): ^5-8 ^2

que seleccionará todos los paquetes excepto 5 a 8 y 2 para la instalación.

Para ver qué paquetes pertenecen al grupo gnome, ejecute:

# pacman -Sg gnome

Visite también https://www.archlinux.org/groups/ para ver qué grupos de paquetes están disponibles.

Nota: si un paquete de la lista ya está instalado en el sistema, este se volverá a reinstalar, incluso si ya está actualizado, a menos que se utilice la opción --needed.

Desinstalar paquetes

Para eliminar un solo paquete, dejando todas sus dependencias instaladas:

# pacman -R nombre_paquete

Para eliminar un paquete y sus dependencias (siempre que no sean usadas por ningún otro paquete instalado):

# pacman -Rs nombre_paquete

Para eliminar un paquete, sus dependencias y todos los paquetes que dependen de esas dependencias:

Advertencia: esta operación es recursiva, y debe utilizarse con precaución, ya que puede eliminar muchos paquetes potencialmente necesarios.
# pacman -Rsc nombre_paquete

Para eliminar un paquete, el cual es requerido por otro paquete, sin quitar el paquete dependiente:

# pacman -Rdd nombre_paquete

pacman guarda los archivos de configuración importantes al quitar ciertas aplicaciones y los renombra con la extensión: .pacsave. Para evitar la creación de estos archivos de respaldo utilice la opción -n:

# pacman -Rn nombre_paquete
Nota: pacman no eliminará las configuraciones creadas por la aplicación misma (por ejemplo los «dotfiles» —archivos que comienzan con un punto— presentes en la carpeta personal [«home»]).

Actualizar paquetes

Advertencia:

pacman puede actualizar todos los paquetes del sistema con una sola orden. Esto proceso puede durar bastante dependiendo de cuánto tiempo haya estado el sistema sin actualizar. La siguiente orden sincroniza las bases de datos de los repositorios y actualiza los paquetes del sistema (excluyendo los paquetes «locales» que no estén en los repositorios configurados):

# pacman -Syu

Consultar la base de datos de los paquetes

pacman puede consultar la base de datos de los paquetes presentes en el sistema con la opción -Q, las bases de datos de los servidores remotos con la opción -S y los archivos presentes en dichas bases con la opión -F. Vea pacman -Q --help, pacman -S --help y pacman -F --help para conocer las subopciones respectivas de cada opción.

pacman puede buscar paquetes en la base de datos, la búsqueda se realiza tanto por los nombres como por las descripciones de los paquetes:

$ pacman -Ss cadena1 cadena2 ...

Algunas veces -s construye una ERE (Expresión Regular Extendida) que puede causar resultados no deseados, por lo cual debe limitarse para que coincida con el nombre del paquete y no con la descripción u otro campo:

$ pacman -Ss '^vim-'

Para buscar paquetes ya instalados:

$ pacman -Qs cadena1 cadena2 ...

Para buscar nombres de archivos de paquetes en los paquetes de los servidores remotos:

$ pacman -Fs cadena1 cadena2 ...

Para mostrar información detallada acerca de un determinado paquete:

$ pacman -Si nombre_paquete

Para conocer los paquetes instalados en el sistema:

$ pacman -Qi nombre_paquete

Pasando la doble opción -i también se mostrará la lista de archivos de respaldo y sus estados de modificación:

$ pacman -Qii nombre_paquete

Para obtener una lista de los archivos instalados por un paquete:

$ pacman -Ql nombre_paquete

Para obtener un listado de los archivos instalados por un paquete recibido desde un servidor remoto:

$ pacman -Fl nombre_paquete

Para verificar la presencia de los archivos instalados por un paquete:

$ pacman -Qk nombre_paquete

Pasando la opción k dos veces, se realizará un chequeo más exhaustivo.

Para consultar la base de datos para saber a qué paquete pertenece un archivo del sistema de archivos:

$ pacman -Qo /ruta/al/nombre_del_archivo

Para consultar la base de datos para saber a qué paquete del servidor remoto pertenece un archivo:

$ pacman -Fo /ruta/al/nombre_del_archivo

Para enumerar todos los paquetes que no sean necesarios como dependencias (huérfanos):

$ pacman -Qdt

Para enumerar todos los paquetes explícitamente instalados y no requeridos como dependencias:

$ pacman -Qet

Para enumerar el árbol de dependencias de un paquete:

$ pactree nombre_paquete

Para enumerar todos los paquetes que dependen de un paquete específico, utilice whoneeds de pkgtoolsAUR:

$ whoneeds nombre_paquete

o la opción inversa pactree:

$ pactree -r nombre_paquete

Véase Pacman/Tips and tricks para conocer más ejemplos.

Pactree

Para ver el árbol de dependencias de un paquete:

$ pactree package_name

Para ver el árbol dependiente de un paquete, pase la bandera inversa -r a pactree, o use whoneeds desde pkgtoolsAUR.

Estructura de la base de datos

Las bases de datos de pacman se encuentran, normalmente, en /var/lib/pacman/sync. Para cada repositorio especificado en /etc/pacman.conf habrá su correspondiente archivo de base de datos ubicado allí. Los archivos de base de datos son archivos en formato tar-gzip que contienen un directorio para cada paquete, por ejemplo para el paquete which:

% tree which-2.20-6 
which-2.20-6
|-- depends
`-- desc

El archivo depends enumera los paquetes de los que depende este paquete, mientras que el archivo desc contiene una descripción del paquete, como el tamaño del archivo y el hash MD5.

Limpiar la memoria caché de los paquetes

pacman almacena los paquetes descargados en /var/cache/pacman/pkg/ y no elimina las versiones antiguas o desinstaladas automáticamente, por lo tanto, es necesario limpiar a drede esa carpeta periódicamente para evitar que la misma crezca indefinidamente.

La opción integrada para eliminar todos los paquetes de la memoria caché que no están instalados es:

# pacman -Sc
Advertencia:
  • haga esto únicamente cuando esté seguro de que no se requieren versiones anteriores de paquetes, por ejemplo para un downgrade posterior. pacman -Sc solo deja disponibles las versiones de los paquetes que están actualmente instalados, las versiones anteriores tendrían que ser recuperadas por otros medios, como Arch Linux Archive;
  • es posible vaciar completamente la carpeta de la caché con pacman -Scc. Además de lo anterior, esto también impide la reinstalación de un paquete directamente desde la carpeta de la caché, requiriendo, en caso de necesidad, de una nueva descarga. Debe evitarse, a menos que se necesite recuperar inmediatemente espacio en el disco.

Debido a las limitaciones anteriores, considere el uso de una alternativa que le permita más control sobre qué paquetes y cuántos desea eliminar de la memoria caché:

el script paccache, proporcionado por el propio paquete pacman, elimina todas las versiones de cada paquete presentes en la memoria caché, independientemente de si están instaladas o no, excepto las 3 más recientes, de forma predeterminada:

# paccache -r
Sugerencia: puede crear hooks de pacman para ejecutarlos automáticamente después de cada operación de pacman. Consulte este hilo para conocer ejemplos.

También puede definir cuántas versiones recientes desea conservar:

# paccache -rk 1

Para eliminar de la memoria caché todas las versiones de los paquetes desinstalados, vuelva a ejecutar paccache con:

# paccache -ruk0

Vea paccache -h para conocer más opciones.

pkgcachecleanAUR y pacleanerAUR son dos alternativas más.

Órdenes adicionales

Descargar un paquete sin instalarlo:

# pacman -Sw nombre_paquete

Instalar un paquete 'local' que no proviene de un repositorio remoto (por ejemplo, el paquete viene de AUR):

# pacman -U /ruta/al/paquete/nombre_paquete-versión.pkg.tar.xz

Para mantener una copia del paquete local en la caché de pacman, utilice:

# pacman -U file://ruta/al/paquete/nombre_paquete-versión.pkg.tar.xz

Instalar un paquete 'remoto' (no de un repositorio indicado en los archivos de configuración de pacman):

# pacman -U http://www.ejemplo.com/repo/ejemplo.pkg.tar.xz

Para inhibir las acciones derivadas de -S, -U y -R, puede utilizarse -p.

pacman siempre enumerará los paquetes que se van a instalar o eliminar y pedirá permiso antes de realizar la acción.

Motivo de la instalación

La base de datos de pacman diferencia los paquetes instalados en dos grupos, de acuerdo a la razón por la que fueron instalados:

  • explicitly-installed: (instalado explícitamente), son aquellos paquetes que se instalaron con una orden genérica de pacman como -S o -U;
  • dependencies: (dependencias), son aquellos paquetes que, pese a que nunca se pasaron (en general) por una orden de instalación de pacman, fueron implícitamente instalados porque eran requeridos por otro paquete que fue explícitamente instalado.

Al instalar un paquete, es posible forzar su motivo de instalación a dependency con:

# pacman -S --asdeps nombre_paquete

Cuando se reinstala un paquete, no obstante, el motivo de instalación establecido se conserva de forma predeterminada.

La lista de paquetes explícitamente instalados se puede mostrar con pacman -Qe, mientras que la lista complementaria de dependencias se puede mostrar con pacman -Qd.

Para cambiar el motivo de la instalación de un paquete ya instalado, ejecute:

# pacman -D --asdeps nombre_paquete

Utilice --asexplicit para realizar la operación opuesta.

Sugerencia: instalar dependencias opcionales con --asdeps hará que, si se eliminan paquetes huérfanos, pacman también elimine estos restos de dependencias opcionales.

Buscar un paquete que contenga un archivo específico

Sincronice la base de datos de archivos:

# pacman -Fy

Busque un paquete que contenga un archivo, por ejemplo:

# pacman -Fs pacman
core/pacman 5.0.1-4
    usr/bin/pacman
    usr/share/bash-completion/completions/pacman
extra/xscreensaver 5.36-1
    usr/lib/xscreensaver/pacman
Sugerencia: puede configurar un trabajo cron o un temporizador de systemd para sincronizar la base de datos de archivos regularmente.

Para obtener funcionalidades avanzadas instale pkgfile, que utiliza una base de datos separada con todos los archivos y sus paquetes asociados.

Configuración

La configuración de pacman se encuentra en el archivo /etc/pacman.conf. Este es el archivo donde el usuario configura el programa para que funcione de la manera deseada. Se puede encontrar información en profundidad sobre el archivo de configuración en pacman.conf(5).

Opciones generales

Las opciones generales están en la sección [options]. Lea la página del manual de pacman(8) o eche un vistazo al archivo predefinido pacman.conf para obtener información adicional.

Comparar versiones antes de actualizar

Para ver versiones antiguas y nuevas de paquetes disponibles, descomente la línea «VerbosePkgLists» en/etc/pacman.conf.La salida de pacman -Syu se verá así:

Package (6)             Old Version  New Version  Net Change  Download Size

extra/libmariadbclient  10.1.9-4     10.1.10-1      0.03 MiB       4.35 MiB
extra/libpng            1.6.19-1     1.6.20-1       0.00 MiB       0.23 MiB
extra/mariadb           10.1.9-4     10.1.10-1      0.26 MiB      13.80 MiB

Evitar la actualización de un paquete

Advertencia: tenga cuidado al omitir paquetes, ya que, como sabe, no son posibles las actualizaciones parciales.

Para omitir la actualización de un paquete en particular cuando vaya a actualizar el sistema, debe especificarlo así:

IgnorePkg=linux

Para ignorar la actualización de varios paquetes, utilice una lista separada por espacios, o utilice líneas adicionales de IgnorePkg. También se pueden utilizar la sintaxis «glob patterns». Si desea omitir paquetes pero solo una vez, puede utilizar la opción --ignore en la línea de órdenes, esta vez con una lista separada por comas.

Aún será posible actualizar los paquetes ignorados usando pacman -S: en este caso pacman le recordará que los paquetes han sido incluidos en una declaración de IgnorePkg.

Evitar la actualización de un grupo de paquetes

Advertencia: tenga cuidado al omitir grupo de paquetes, ya que, como sabe, no son posibles las actualizaciones parciales.

Al igual que con los paquetes, saltarse un grupo de paquetes completo también es posible:

IgnoreGroup=gnome

Evitar la instalación de archivos en el sistema

Para ignorar siempre la instalación de archivos o directorios específicos, enumérelos en NoExtract. Por ejemplo, para evitar la instalación de unidades de systemd, proceda así:

NoExtract=usr/lib/systemd/system/*

Las reglas posteriores anulan las anteriores, pero se puede negar una regla añadiéndole el signo !.

Sugerencia: pacman emite mensajes de advertencia sobre locales que faltan al actualizar un paquete para el cual los locales han sido eliminados por localepurge o bleachbit. Comentando la opción CheckSpace en pacman.conf hace que se supriman tales advertencias, pero tenga en cuenta que la función de comprobación del espacio disponible en disco estará desactivada para todos los paquetes.

Mantener varios archivos de configuración

Si tiene varios archivos de configuración (por ejemplo, configuración principal y configuración para el repositorio testing activado) y quiere compartir las opciones entre dichas configuraciones, puede utilizar la declaración Include de los archivos de configuración, por ejemplo:

Include = /ruta/a/configuraciones/comunes

Donde el archivo /ruta/a/configuraciones/comunes contiene las mismas opciones para ambas configuraciones.

Hooks

pacman puede ejecutar hooks antes y después de la transacción, desde el directorio /usr/share/libalpm/hooks/; se pueden especificar más directorios con la opción HookDir en pacman.conf, cuya ruta por defecto es /etc/pacman.d/hooks. Los nombres de los archivos hooks deben tener el sufijo .hook.

Para obtener más información sobre los hooks de alpm, consulte alpm-hooks(5).

Repositorios y servidores de réplicas

Además de la sección especial [options], cada valor [section] en pacman.conf define un repositorio de paquetes para ser utilizado. Un «repositorio» es una colección «lógica» de paquetes, los cuales están «físicamente» almacenados en uno o más servidores: por esta razón cada servidor se llama «espejo» (mirror) del repositorio.

Los repositorios se dividen en oficiales y no oficiales. El orden de los repositorios en el archivo de configuración es importante; los repositorios listados primero en dicho archivo de configuración tendrán prioridad sobre los listados más adelante respecto de los paquetes presentes en dos repositorios cuando estos tengan nombres idénticos, independientemente del número de versión. Para usar un repositorio después de agregarlo, necesitará primero actualizar todo el sistema.

Cada sección del repositorio permite definir la lista de sus servidores de réplicas, bien directamente, bien en un archivo externo dedicado a través de la directiva Include: por ejemplo, los servidores de réplicas de los repositorios oficiales están incluidos en /etc/pacman.d/mirrorlist. Vea el artículo Mirrors para la configuración de los servidores de réplicas.

Seguridad de los paquetes

pacman soporta firmas de los paquetes, que añaden una capa adicional de seguridad a los mismos. La configuración por defecto, SigLevel = Required DatabaseOptional, permite la verificación de las firmas para todos los paquetes a nivel global: esto puede ser anulado en la línea SigLevel de cada repositorio en cuestión. Para conocer más detalles sobre la firma de paquetes y la verificación de firma, eche un vistazo a pacman-key.

Solución de problemas

Error «Failed to commit transaction (conflicting files)»

Si ve el error siguiente: [1]

error: could not prepare transaction
error: failed to commit transaction (conflicting files)
package: /path/to/file exists in filesystem
Errors occurred, no packages were upgraded.

Esto sucede porque pacman ha detectado un conflicto de archivos, y por diseño, no sobrescribirá los archivos por usted. Esta es una característica de diseño, no un defecto.

El problema es generalmente trivial de resolver. Una forma segura es comprobar primero si el archivo pertenece a otro paquete (pacman -Qo /path/to/file). Si el archivo es propiedad de otro paquete, informe de un error de archivo. Si el archivo no es propiedad de otro paquete, cambie el nombre del archivo que existe en el sistema de archivos y vuelva a emitir la orden de actualización. Si todo va bien, el archivo puede ser eliminado.

Si ha instalado un programa manualmente sin usar pacman o utilizando un frontend, por ejemplo a través de make install, tiene que quitarlo con todos sus archivos, y volver a instalarlo correctamente usando pacman. Véase también Pacman tips#Identify files not owned by any package.

Cada paquete instalado proporciona un archivo /var/lib/pacman/local/$paquete-$versión/files que contiene metadatos sobre este paquete. Si este archivo se daña, está vacío o se pierde, produce errores del tipo file exists in filesystem al intentar actualizar el paquete. Este tipo de error suele referirse solo a un paquete. En lugar de renombrar manualmente y eliminar posteriormente todos los archivos que pertenecen al paquete en cuestión, puede ejecutar excepcionalmente pacman -S --force $paquete para forzar a pacman a sobrescribir estos archivos.

Advertencia: tenga cuidado cuando utilice el parámetro --force (por ejemplo pacman -Syu --force) ya que puede causar problemas importantes si se utiliza incorrectamente. Se recomienda encarecidamente que solo utilice esta opción cuando «Arch news» indique al usuario que lo haga.

Error «Failed to commit transaction (invalid or corrupted package)»

Busque los archivos .part (paquetes parcialmente descargados) en /var/cache/pacman/pkg y elimínelos (a menudo causados por el uso de un parámetro XferCommand personalizado en pacman.conf).

# find /var/cache/pacman/pkg/ -iname "*.part" -exec rm {} \;

Error «Failed to init transaction (unable to lock database)»

Cuando pacman está a punto de alterar las bases de datos de los paquetes, por ejemplo al instalar un paquete, crea un archivo de bloqueo en /var/lib/pacman/db.lck. Esto evita que otra instancia de pacman intente alterar la base de datos al mismo tiempo.

Si se interrumpe pacman mientras este altera la base de datos, este archivo de bloqueo obsoleto puede permanecer. Si está seguro de que no hay instancias de pacman ejecutándose, elimine el archivo de bloqueo:

# rm /var/lib/pacman/db.lck

Los paquetes no se pueden recibir en la instalación

Este error se manifiesta como Not found in sync db, Target not found o Failed retrieving file.

En primer lugar, asegúrese de que el paquete existe realmente (¡y cuidado con los errores tipográficos!). Si ciertamente el paquete existe, es posible que la lista de paquetes esté desactualizada o que los repositorios estén configurados incorrectamente. Pruebe ejecutando pacman -Syyu para forzar una actualización de todas las listas de paquetes y, seguidamente, actualizar el sistema.

También podría ser que el repositorio que contiene el paquete no esté activado en su sistema, por ejemplo, el paquete podría estar en el repositorio multilib, pero el mismo no está activado en el archivo pacman.conf.

Consulte también: ¿Por qué hay solo una única versión de cada biblioteca compartida en los repositorios oficiales?

Reinstalar manualmente pacman

Advertencia: es extremadamente fácil romper el sistema aún más utilizando este enfoque. Utilice esto como último recurso si el método descrito en la sección #pacman se bloquea durante una actualización no es una opción.

Incluso si pacman está seriamente dañado, puede arreglarse manualmente descargando los paquetes más recientes y extrayéndolos a las ubicaciones correctas. Los pasos ásperos a realizar son:

  1. determinar dependencias a instalar;
  2. descargar cada paquete de un repositorio de réplica de su elección;
  3. extraer cada paquete a la raíz del sistema;
  4. reinstalar estos paquetes con pacman -Sf para actualizar la base de datos del paquete;
  5. hacer una actualización completa del sistema.

Si dispone de un sistema Arch operativo, puede ver la lista completa de dependencias con:

$ pacman -Q $(pactree -u pacman)

pero es posible que solo tenga que actualizar algunas de ellas dependiendo de su problema. Un ejemplo de extracción de un paquete es:

# tar -xvpwf package.tar.xz -C / --exclude .PKGINFO --exclude .INSTALL

Observe el uso del parámetro w para ejecutar la orden en modo interactivo. Ejecutar la orden de forma no interactiva es muy arriesgado, ya que podría terminar sobrescribiendo un archivo importante. También debe tener cuidado de extraer los paquetes en el orden correcto (es decir, dependencias primero). Esta publicación del foro contiene un ejemplo de este proceso en el que solo se rompen un par de dependencias de pacman.

pacman se bloquea durante una actualización

En el caso de que pacman se bloquee con un error de «database write» al eliminar paquetes, y, al intentar reinstalar o actualizar después otros paquetes, falla, haga lo siguiente:

  1. arranque Arch utilizando el soporte de instalación. Utilice preferentemente una imagen reciente que contenga una versión de pacman lo más coincidente con la de su sistema;
  2. monte el sistema de archivos raíz del sistema, por ejemplo, mount /dev/sdaX /mnt con privilegios de root, y compruebe que el montaje tenga suficiente espacio con df -h;
  3. monte también los sistemas de archivos proc y sysfs: mount -t {proc,sysfs} /dev/sdaX {/mnt/proc, /mnt/sys} ;
  4. si el sistema utiliza las ubicaciones por defecto de las bases de datos y directorios, ahora puede actualizar la base de datos de pacman y actualizar el sistema con pacman --root=/mnt --cachedir=/mnt/var/cache/pacman/pkg -Syyu como root;
  5. después de la actualización, una forma de comprobar si hay paquetes no actualizados pero que aún están rotos, es con: find /mnt/usr/lib -size 0;
  6. por último, reinstale cualquier paquete roto con pacman --root /mnt --cachedir=/mnt/var/cache/pacman/pkg -S paquete.

Error «unable to find root device» después de reiniciar

Lo más probable es que su imagen initramfs se haya roto durante una actualización del kernel (el uso inadecuado de la opción --force de pacman puede ser una causa). Tiene dos opciones. En primer lugar, pruebe la entrada Fallback.

Sugerencia: en caso de que haya eliminado la entrada Fallback, siempre puede pulsar la tecla Tab cuando aparezca el menú del gestor de arranque (para Syslinux) o e (para GRUB o systemd-boot), renombrar la imagen a initramfs-linux-fallback.img y presionar Enter o b (dependiendo de su gestor de arranque) para arrancar con los nuevos parámetros.

Una vez que el sistema se haya iniciado, ejecute la siguiente orden (para el kernel de linux por defecto) desde la consola o desde un terminal para reconstruir la imagen initramfs:

# mkinitcpio -p linux

Si eso no funciona, desde una versión actual de Arch (CD/DVD o memoria USB), monte las particiones root y boot. Luego enjaule el sistema utilizando arch-chroot:

# arch-chroot /mnt
# pacman -Syu mkinitcpio systemd linux
Nota:
  • si no tiene una versión actual de Arch o si solo dispone de otra distribución Linux «live», puede enjaular el sistema siguiendo la forma antigua. Obviamente, tendrá que escribir más que con la simple ejecución del script arch-chroot;
  • si pacman falla con el mensaje Could not resolve host, compruebe su conexión a Internet;
  • si no puede entrar en el entorno arch-chroot o chroot, pero necesita reinstalar los paquetes, puede utilizar la orden pacman -r /mnt -Syu foo bar para ejecutar pacman sobre la partición raíz del sistema.

Al reinstalar el kernel (el paquete linux) se generará automáticamente la imagen initramfs con mkinitcpio -p linux. No hay necesidad de hacerlo por separado.

Después, se recomienda ejecutar exit, umount /mnt/{boot,} y reboot.

Signature from "User <email@gmail.com>" is unknown trust, installation failed

Puede intentar:

  • actualizar las claves conocidas, es decir, pacman-key --refresh-keys;
  • actualizar manualmente el paquete archlinux-keyring primero, es decir, ejecutando: pacman -S archlinux-keyring;
  • y, seguidamente, restablecer todas las claves.

Solicitud para importar las claves PGP

Si instala Arch con una ISO obsoleta, es probable que se le pida que importe las claves PGP. Acepte, para descargar las claves y poder continuar. Si no puede agregar la clave PGP correctamente, actualice el depósito de llaves o actualice archlinux-keyring (vea lo anterior).

Error: key "0123456789ABCDEF" could not be looked up remotely

Si los paquetes se firman con claves nuevas, las cuales se agregaron a última hora a archlinux-keyring, estas claves no estarán disponibles localmente durante la actualización (el dilema del huevo o la gallina). El llavero archlinux-keyring no contendrá las claves (nuevas) hasta que se actualice. Pacman trata de evitar esto mediante una búsqueda a través de un servidor de claves, lo que no siempre es posible, por ejemplo, si nos encontramos detrás de un proxy o un cortafuegos, lo que dará como resultado el error indicado. Actualice archlinux-keyring primero como se indica arriba.

Signature from "User <email@archlinux.org>" is invalid, installation failed

Cuando la hora del sistema es errónea, las claves de firma se consideran caducadas (o no válidas) y las comprobaciones de firma en los paquetes fallarán con el siguiente error:

error: package: signature from "User <email@archlinux.org>" is invalid
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occured, no packages were upgraded.

Asegúrese de corregir la hora, por ejemplo con ntpd -qg ejecutado como root, y luego hwclock -w, antes de realizar instalaciones o actualizaciones posteriores.

Error «Warning: current locale is invalid; using default "C" locale»

Como indica el mensaje de error, la configuración del idioma no está establecida correctamente. Vea Locale.

pacman no respeta los ajustes del proxy

Asegúrese de que las variables de entorno relevantes ($http_proxy, $ftp_proxy, etc.) están configuradas. Si utiliza pacman con sudo, debe configurar sudo para que pase estas variables de entorno a pacman.

¿Cómo reinstalar todos los paquetes, conservando la información sobre si algo se instaló explícitamente o como una dependencia?

Para reinstalar todos los paquetes nativos: pacman -Qnq | pacman -S - (la opción -S conserva el motivo de la instalación de forma predeterminada).

A continuación, tendrá que reinstalar todos los paquetes foráneos, que se pueden enumerar con pacman -Qmq.

Error «Cannot open shared object file»

Este error se da cuando al ejecutar pacman, este hubiera eliminado o dañado las bibliotecas compartidas del mismo pacman.

Para recuperarse de esta situación es necesario descomprimir manualmente en su sistema de archivos las bibliotecas necesarias. En primer lugar, busque qué paquete contiene la biblioteca perdida y, luego, localícela en la caché de pacman (/var/cache/pacman/pkg/). Desempaquete la biblioteca compartida requerida por el sistema de archivos. Esto permitirá ejecutar pacman.

Ahora necesita reinstalar el paquete roto. Tenga en cuenta que necesita utilizar el parámetro --force como si acabara de desempaquetar los archivos del sistema y pacman no lo supiera. pacman reemplazará correctamente nuestro archivo de biblioteca compartida con uno del paquete (reinstalado).

Hecho esto, actualice el resto del sistema.

Descarga de paquetes congelada

Se han reportado algunos problemas relacionados con problemas de red que impiden que pacman actualice o sincronice los repositorios. [2] [3]. Al instalar Arch Linux de forma nativa, estos problemas han sido resueltos remplazando el gestor de descargas de archivos pacman por defecto con otro alternativo (vea Improve pacman performance para obtener más detalles). Al instalar Arch Linux como SO invitado en VirtualBox, este problema también se ha solucionado utilizando Host interface en lugar de NAT en las propiedades de la máquina.

Error al recuperar el archivo 'core.db' del servidor de réplica

Si recibe este mensaje de error con los mirrors correctos, intente establecer un servidor de nombres diferente.

Véase también