GNU/Linux >> Tutoriales Linux >  >> Linux

Introducción a los comandos de Pacman en distribuciones de Linux basadas en Arch

Resumen:esta guía para principiantes le muestra lo que puede hacer con los comandos pacman en Linux, cómo usarlos para encontrar nuevos paquetes, instalar y actualizar nuevos paquetes y limpiar su sistema.

El administrador de paquetes pacman es una de las principales diferencias entre Arch Linux y otras distribuciones importantes como Red Hat y Ubuntu/Debian. Combina un formato de paquete binario simple con un sistema de compilación fácil de usar. El objetivo de pacman es administrar paquetes fácilmente, ya sea desde los repositorios oficiales o desde las compilaciones propias del usuario.

Si alguna vez usó distribuciones basadas en Ubuntu o Debian, es posible que haya usado los comandos apt-get o apt. Pacman es el equivalente en Arch Linux. Si acaba de instalar Arch Linux, una de las primeras cosas que debe hacer después de instalar Arch Linux es aprender a usar los comandos de pacman.

En esta guía para principiantes, explicaré algunos de los usos esenciales del comando pacmand que debe conocer para administrar su sistema basado en Arch.

Comandos esenciales de pacman que los usuarios de Arch Linux deben conocer

Al igual que otros administradores de paquetes, pacman puede sincronizar las listas de paquetes con los repositorios de software para permitir que el usuario descargue e instale paquetes con un simple comando resolviendo todas las dependencias requeridas.

Instalar paquetes con pacman

Puede instalar un solo paquete o varios paquetes usando el comando pacman de esta manera:

pacman -S _package_name1_ _package_name2_ ...

La -S significa sincronización. Significa que pacman sincroniza primero

La base de datos de pacman clasifica los paquetes instalados en dos grupos según el motivo por el que se instalaron:

  • instalado explícitamente :los paquetes que fueron instalados por un comando genérico pacman -S o -U
  • dependencias :los paquetes que se instalaron implícitamente porque los requería otro paquete que se instaló explícitamente.

Eliminar un paquete instalado

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

pacman -R package_name_

Para eliminar un paquete y sus dependencias que no son requeridas por ningún otro paquete instalado:

pacman -Rs _package_name_

Para eliminar dependencias que ya no son necesarias. Por ejemplo, se eliminó el paquete que necesitaba las dependencias.

pacman -Qdtq | pacman -Rs -

Paquetes de actualización

Pacman proporciona una manera fácil de actualizar Arch Linux. Puede actualizar todos los paquetes instalados con un solo comando. Esto podría tomar un tiempo dependiendo de qué tan actualizado esté el sistema.

El siguiente comando sincroniza las bases de datos del repositorio y actualiza los paquetes del sistema, excluyendo los paquetes “locales” que no están en los repositorios configurados:

pacman -Syu
  • S significa sincronización
  • y es para actualizar (caché local)
  • u es para la actualización del sistema

Básicamente, está diciendo que se sincronice con el repositorio central (base de datos del paquete maestro), actualice la copia local de la base de datos del paquete maestro y luego realice la actualización del sistema (actualizando todos los paquetes que tienen una versión más reciente disponible).

¡Atención!

Si es un usuario de Arch Linux antes de actualizar, se recomienda visitar la página de inicio de Arch Linux para consultar las últimas noticias en busca de actualizaciones fuera de lo común. Si se necesita una intervención manual, se hará una publicación de noticias apropiada. Alternativamente, puede suscribirse a la fuente RSS o a la lista de correo de arch-announce.

También tenga en cuenta consultar el foro apropiado antes de actualizar el software fundamental (como el kernel, xorg, systemd o glibc), para cualquier problema informado.

Las actualizaciones parciales no son compatibles en una distribución de lanzamiento continuo como Arch y Manjaro. Eso significa que cuando las nuevas versiones de la biblioteca se envían a los repositorios, todos los paquetes en los repositorios deben reconstruirse contra las bibliotecas. Por ejemplo, si dos paquetes dependen de la misma biblioteca, actualizar solo un paquete podría romper el otro paquete que depende de una versión anterior de la biblioteca.

Utiliza pacman para buscar paquetes

Pacman consulta la base de datos del paquete local con el indicador -Q, la base de datos de sincronización con el indicador -S y la base de datos de archivos con el indicador -F.

Pacman puede buscar paquetes en la base de datos, tanto en los nombres como en las descripciones de los paquetes:

pacman -Ss _string1_ _string2_ ...

Para buscar paquetes ya instalados:

pacman -Qs _string1_ _string2_ ...

Para buscar nombres de archivos de paquetes en paquetes remotos:

pacman -F _string1_ _string2_ ...

Para ver el árbol de dependencias de un paquete:

pactree _package_naenter code hereme_

Limpieza de la caché de paquetes

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

  1. Permite degradar un paquete sin necesidad de recuperar la versión anterior a través de otras fuentes.
  2. Un paquete que se ha desinstalado se puede reinstalar fácilmente directamente desde la carpeta de caché.

Sin embargo, es necesario limpiar el caché periódicamente para evitar que la carpeta aumente de tamaño.

El script paccache(8), provisto dentro del paquete pacman-contrib, elimina todas las versiones en caché de los paquetes instalados y desinstalados, excepto los 3 más recientes, de forma predeterminada:

paccache -r

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

pacman -Sc

Para eliminar todos los archivos de la memoria caché, use el interruptor de limpieza dos veces, este es el enfoque más agresivo y no dejará nada en la carpeta de la memoria caché:

pacman -Scc

Instalación de paquetes locales o de terceros

Instale un paquete 'local' que no sea de un repositorio remoto:

pacman -U _/path/to/package/package_name-version.pkg.tar.xz_

Instale un paquete 'remoto', no contenido en un repositorio oficial:

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

Bonificación:resolución de errores comunes con pacman

Estos son algunos errores comunes que puede encontrar al administrar paquetes con pacman.

Error al confirmar la transacción (archivos en conflicto)

Si ve el siguiente error:

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 no sobrescribirá los archivos por usted.

Una forma segura de resolver esto es verificar primero si otro paquete posee el archivo (pacman -Qo /path/to/file ). Si el archivo es propiedad de otro paquete, presente un informe de error. 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 el comando de actualización. Si todo va bien, el archivo puede ser eliminado.

En lugar de renombrar manualmente y luego eliminar todos los archivos que pertenecen al paquete en cuestión, puede ejecutar explícitamente pacman -S –overwrite glob package para obligar a pacman a sobrescribir archivos que coincidan con glob .

Error al confirmar la transacción (paquete no válido o dañado)

Busque archivos .part (paquetes parcialmente descargados) en /var/cache/pacman/pkg/ y elimínelos. A menudo es causado por el uso de un XferCommand personalizado en pacman.conf.

Error al iniciar la transacción (no se puede bloquear la base de datos)

Cuando pacman está a punto de alterar la base de datos del paquete, 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 del paquete al mismo tiempo.

Si pacman se interrumpe mientras se cambia la base de datos, este archivo de bloqueo obsoleto puede permanecer. Si está seguro de que no se está ejecutando ninguna instancia de pacman, elimine el archivo de bloqueo.

Compruebe si un proceso está reteniendo el archivo de bloqueo:

lsof /var/lib/pacman/db.lck

Si el comando anterior no devuelve nada, puede eliminar el archivo de bloqueo:

rm /var/lib/pacman/db.lck

Si encuentra el PID del proceso que contiene el archivo de bloqueo con la salida del comando lsof, elimínelo primero y luego elimine el archivo de bloqueo.

Espero que les guste mi humilde esfuerzo para explicar los comandos básicos de pacman. Por favor, deje sus comentarios a continuación y no olvide suscribirse en nuestras redes sociales. ¡Mantente a salvo!



Linux
  1. Primeros pasos con el comando tac de Linux

  2. Comenzando con PiFlash:Arrancando su Raspberry Pi en Linux

  3. Primeros pasos con el comando cat de Linux

  4. Primeros pasos con PostgreSQL en Linux

  5. Primeros pasos con SSH en Linux

Introducción a los comandos ad hoc de Ansible

Tutorial de Vagrant:Primeros pasos con Vagrant en Linux

Primeros pasos con Docker Compose en Linux

Comenzando con VirtualBox en Linux – Parte 1

Primeros pasos con Flutter en el escritorio de Linux

Introducción a los ejemplos de comandos de Alpine Linux Apk