pacman (Español)

From ArchWiki
Revision as of 18:16, 12 December 2012 by Pedro (Talk | contribs)

Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary heading Template:Article summary link Template:Article summary link Template:Article summary link Template:Article summary link Template:Article summary end

El 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 sistema de compilación de paquetes. El objetivo de pacman es hacer posible gestionar fácilmente los paquetes, si son de los repositorios oficiales de Arch o compilaciones propias del usuario.

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 está escrito en el lenguaje de programación C y utiliza para los paquetes el formato .pkg.tar.xz.

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

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. Información en profundidad sobre el archivo de configuración se puede encontrar en man pacman.conf.

Opciones Generales

Las opciones generales están en la sección [options]. Lea la página de man o en el pacman.conf predefinido para información adicional.

Evitar la actualización de un paquete

Para omitir la actualización de un paquete determinado, especifíquelo en la línea apropiada:

IgnorePkg=linux

Para ignorar la actualización de varios paquetes utilice una lista separada por espacios, o use líneas adicionales IgnorePkg.

Evitar la actualización de un grupo de paquetes

Al igual que con un paquete, es posible ignorar la actualización de un grupo de paquetes:

IgnoreGroup=gnome

Evitar la instalación de archivos en el sistema

Para ignorar siempre la instalación de archivos o carpetas específicos enumérelos con NoExtract. Por ejemplo, para evitar la instalación de units de systemd use ésto:

NoExtract=usr/lib/systemd/system/*

Repositorios

En esta sección se define qué repositorios utilizar, como se especifican en /etc/pacman.conf. Se puede especificar aquí directamente o incluirlo desde otro archivo (por ejemplo /etc/pacman.d/mirrorlist), siendo necesario mantener una sola lista.

/etc/pacman.conf
#[testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

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

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

#[community-testing]
#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 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 este artículo.

Uso

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 man pacman.

Instalar paquetes

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 ...

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

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 gnome. Para ver qué paquetes pertenecen al grupo de 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 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 --needed.
Advertencia: Al instalar paquetes, no actualice la lista de paquetes sin actualizar el sistema (es decir, 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

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

# pacman -R nombre_paquete

Para eliminar un paquete y sus dependencias que no son 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 backup utilice la opción -n:

# 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).

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: 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 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 .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.

Sugerencia: Recuerde que la salida de pacman se registra en el archivo /var/log/pacman.log.

Antes de actualizar, se recomienda visitar la 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.

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.

Consultar la base de datos de paquetes

Pacman puede consultar la base de datos local de los paquetes con la opción -Q; véase:

$ pacman -Q --help

y puede consultar las bases de datos sincronizadas con la opción -S; véase:

$ pacman -S --help

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 ...

Para buscar paquetes ya instalados:

$ pacman -Qs cadena1 cadena2 ...

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

$ pacman -Si nombre_paquete

Para los paquetes instalados localmente:

$ pacman -Qi nombre_paquete

Pasando la doble opción -i también se mostrará la lista de archivos de backup 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 los paquetes no instalados, utilice pkgfile.

También se puede consultar la base de datos para saber qué paquete pertenece a un determinado archivo del sistema:

$ pacman -Qo /ruta/al/nombre_del_archivo

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

$ pacman -Qdt

Para listar el árbol de dependencias de un paquete:

$ pactree nombre_paquete

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

$ whoneeds nombre_paquete

Comandos adicionales

Actualizar el sistema e instalar una lista de paquetes (una sola línea):

# pacman -Syu nombre_paquete1 nombre_paquete2 ...

Descargar un paquete sin instalarlo:

# pacman -Sw nombre_paquete

Instale 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

Instale 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 limpiar la caché de los paquetes descargados que no han sido instalados (/var/cache/pacman/pkg):

Advertencia: Haga esto sólo si está seguro de que los paquetes instalados son estables y que una eventual 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.
# pacman -Sc

Limpie el cache completamente de todos los paquetes:

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 Arch Rollback Machine.
# pacman -Scc
Sugerencia: Como una alternativa tanto a la modalidad -Sc como a -Scc, considere la posibilidad de usar paccache en pacman-contrib. Este script ofrece un mayor control sobre qué y cuántos paquetes serán eliminados. Ejecute paccache -h para obtener instrucciones.

Las actualizaciones parciales no son soportadas

Arch Linux es rolling release, y las nuevas versiones de 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 AUR), los usuarios necesitarán recompilar sus dependencias cuando modifiquen a nivel soname.

Esto significa que las actualizaciones parciales no están soportadas. No utilice pacman -Sy paquete o cualquier equivalente como pacman -Sy y luego 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 IgnorePkg y IgnoreGroup por la misma razón.

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 soname cuando no son compatibles con versiones anteriores. Un simple pacman -Syu a un mirror correctamente sincronizado solucionará el problema, siempre y cuando pacman no esté roto.

Solución de problemas

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Véase también