x
1

Pacman (gestor de paquetes)



Pacman es el gestor de paquetes de la distribución GNU/Linux Arch Linux. Fue desarrollado por el creador de Arch Linux, Judd Vinet. Pacman es capaz de resolver las dependencias, y descargar e instalar automáticamente todos los paquetes necesarios. En teoría, el usuario solo necesita ejecutar una única orden para actualizar por completo el sistema. Además de ser utilizado en Arch Linux, Pacman también es usado en Manjaro, EndeavourOS, Parabola, Frugalware[2]​ y Chakra.[3]

El gestor de paquetes Pacman es uno de los puntos fuertes de Arch Linux. Combina un simple paquete binario con un formato fácil de usar sistema de construcción (makepkg y ABS). Pacman permite administrar fácilmente los paquetes, ya sea desde los repositorios oficiales de Arch Linux, o desde repositorios propios de usuarios.

Pacman mantiene el sistema actualizado al día mediante la sincronización de la lista de paquetes con el servidor primario. Este modelo cliente/servidor también le permite descargar e instalar paquetes completos con todas las dependencias requeridas con un simple comando.

Pacman utiliza archivos empaquetados en tar y comprimidos en gzip o xz para todos los paquetes, cada uno de los cuales contiene binarios compilados. Los paquetes son descargados a través de FTP, también se puede utilizar HTTP y archivos locales, dependiendo de cómo esté configurado cada repositorio. Cumple con Linux Arch Build System (ABS) utilizados para crear los paquetes desde el código fuente.

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

Para configurar Pacman solamente hay que editar el archivo /etc/pacman.conf, donde se pueden añadir repositorios y definir diversas opciones, pudiendo incluso crear repositorios propios.

Los paquetes de Pacman son archivos tar comprimidos, que contienen metadatos y una estructura de directorios con los archivos. Los paquetes se construyen con makepkg, usando guiones de Bash, conocidos como PKGBUILDs.[4]​ El siguiente es un PKGBUILD para el paquete patch, incluido en la documentación Pacman a manera de ejemplo:[5]

Lo que sigue es una muestra de las operaciones que se pueden realizar con pacman.[6]

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

Para instalar una lista de paquetes con una expresión regular (regex):

A veces hay varias versiones de un paquete en diferentes repositorios (por ejemplo, extra y testing=. Para instalar la versión desde el repositorio extra en este ejemplo, el repositorio debe definirse delante del nombre del paquete:

Para instalar un número de paquetes que comparten patrones similares en sus nombres uno puede usar la expansión de llaves. Por ejemplo:

Esto se puede ampliar a los niveles que sean necesarios:

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

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:

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

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

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

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.

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

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

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

Esta operación es recursiva, y debe utilizarse con precaución, ya que puede eliminar muchos paquetes potencialmente necesarios.

Para eliminar un paquete, el cual es requerido por otro paquete, sin quitar el paquete dependiente (la siguiente operación puede romper un sistema y debe evitarse):

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

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:

Para buscar paquetes ya instalados:

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

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

Para conocer los paquetes instalados en el sistema:

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

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

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

Para verificar la presencia de los archivos instalados por un 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:

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

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

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

Para ver el árbol de dependencias de un paquete:

Para ver el árbol dependiente de un paquete, se utiliza la opción inversa -r a pactree.

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.

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.

Pacman almacena los paquetes descargados en /var/cache/pacman/pkg/ y no elimina las versiones antiguas o desinstaladas automáticamente. Esto tiene algunas ventajas:

Sin embargo, es necesario limpiar deliberadamente la caché periódicamente para evitar que la carpeta crezca indefinidamente en tamaño.

El script paccache, proporcionado dentro del paquete pacman-contrib, elimina todas las versiones en caché de los paquetes instalados y desinstalados, excepto los 3 más recientes, por defecto:

También puede definir cuántas versiones recientes desea conservar. Para conservar solo una versión anterior:

Añada la opción u para limitar la acción de paccache a los paquetes desinstalados. Por ejemplo, para eliminar todas las versiones en caché de paquetes desinstalados:

Véase paccache -h para más opcioines.

Pacman también tiene algunas opciones integradas para limpiar el caché y los archivos de base de datos sobrantes de los repositorios que ya no figuran en el archivo de configuración de /etc/pacman.conf. Sin embargo, pacman no ofrece la posibilidad de mantener una serie de versiones anteriores y, por lo tanto, es más agresivo que las opciones predeterminadas de paccache.

Para eliminar todos los paquetes en caché que no están instalados actualmente, y la base de datos de sincronización no utilizada:

pkgcacheclean y pacleaner (ambas del repositorio AUR) son dos alternativas más para limpiar la caché.

Descargar un paquete sin instalarlo:

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

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

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

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.

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

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

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:

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

Sincronice la base de datos de archivos:

Busque un paquete que contenga un archivo, por ejemplo:

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.[6]

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

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

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.

En Archlinux y derivadas no son posibles las actualizaciones parciales.

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

Todos los archivos enumerados con una directivaNoUpgrade nunca se tocarán durante la instalación/actualización de un paquete, y los nuevos archivos se instalarán con una extensión .pacnew.

La ruta se refiere a los archivos del paquete. Por lo tanto, no debe incluirse la barra inclinada.

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

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

Si tiene varios archivos de configuración y quiere compartir las opciones entre dichas configuraciones, puede utilizar la declaración Include de los archivos de configuración, por ejemplo:

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

Pacman soporta firmas de los paquetes, que añaden una capa adicional de seguridad a los mismos. La configuración por defecto, 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 SigLevel de cada repositorio en cuestión.

Existen varios front ends para Pacman que permiten llevar a cabo las tareas de mantenimiento de paquetes de forma gráfica:

Definition of Free Cultural Works logo notext.svg Este artículo incorpora texto de un trabajo de contenido libre. Licenciado bajo GNU Free Documentation License 1.3 o posterior Declaración de la licencia: pacman (Español), ArchWiki. Para aprender como añadir texto de licencias libres a artículos de Wikipedia, véase Wikipedia:Agregar textos en licencia libre en Wikipedia. Para más información sobre cómo reutilizar texto de Wikipedia, véanse las condiciones de uso.



Escribe un comentario o lo que quieras sobre Pacman (gestor de paquetes) (directo, no tienes que registrarte)


Comentarios
(de más nuevos a más antiguos)


Aún no hay comentarios, ¡deja el primero!