Latinoamérica
de.novatoanovato@gmail.com

Gestor de paquetes Pacman (Primera parte)

Gestor de paquetes Pacman (Primera parte)

Pacman

 

Pacman es el gestor de paquetes de la distribución GNU/Linux ArchLinux, fue desarrollado por el creador de esta distribución, Judd Vinet y su lanzamiento inicial tuvo fecha el 25 de febrero de 2002.
Este potente gestor de paquetes es capaz de resolver las dependencias, y descargar e instalar automáticamente todos los paquetes o grupos de paquetes que sean necesarios y que estén disponibles en los repositorios para su acceso.

– Repositorios:

Conocemos por repositorios a un sitio centralizado (servidor dedicado) donde se almacenan y mantienen programas, actualizaciones de programas y actualizaciones de sistema.

Cada distribución, así como ArchLinux, tiene sus repositorios en los que están almacenados los programas y actualizaciones desarrollados para quedar a disposición de estas y de sus derivadas. Los sistemas tiene una lista de repositorios disponibles que podemos modificar añadiendo o quitando mas tipos de repositorios (multimedia, seguridad, para desarrolladores, etc.), estos pueden ser oficiales o no oficiales de la distribución, y de proceder con su modificación se recomienda cuidado por cuestiones de seguridad.

-Repositorios oficiales

Son los repositorios que contienen el software al que la distribución brinda soporte, tanto para descarga como para actualización. Muchas veces cuentan con un protocolo de revisión riguroso para asegurarse de que todos los paquetes que contienen se encuentran en estado óptimo y no representan riesgos de seguridad o estabilidad para el sistema.

-Repositorios no oficiales

Los repositorios no oficiales, contienen el software que no es soportado directamente por la distribución. Por lo tanto carecen de los protocolos de revisión que se mencionamos anteriormente y, aunque contienen paqueteria que puede sernos útiles para nuestro sistema, deben ser manejados con cuidado.

-Dependencias:

En el campo del software una dependencia es una aplicación o una librería requerida por otro programa para poder funcionar correctamente. Por ello se dice que dicho programa depende de tal aplicación o librería.

Configurando pacman:

El “Estándar de Jerarquías FHS” es la norma que define la disposición de los directorios y su contenido en los sistemas operativos GNU/Linux. Sitúa los archivos de configuración tanto a nivel de componentes del sistema operativo, como de los programas y aplicaciones instalados durante su uso; en el directorio “/etc”.

Por lo tanto, para acceder a su fichero configuración, hacemos uso de nuestro editor de texto favorito, en mi caso “nano” e indicamos la ruta (/etc) y el nombre del fichero de configuración de pacman ubicado en esa ruta (pacman.conf), en una sola linea de comando “nano /etc/pacman.conf”, cabe aclarar que necesitamos ser usuario #root o al menos tener permisos de superusuario (sudo) para poder modificar el fichero en cuestión. Ejecutamos entonces:

Conociendo pacman.conf

Veamos paso a paso la estructura del archivo de configuración de nuestro pacman. Para ello usaremos como guía el manual de “pacman.conf”. Si, tiene su propio manual y esta bien documentado. Para llamarlo, ejecutamos la sintaxis que nos permite acceder a esta documentación:

También podemos acceder a este en linea (manual online).
Una vez dentro de pacman.conf y usando el manual como guía, veamos su estructura y una a una las opciones que nos permitirán configurar esta potente herramienta.

Apartado opciones

En la siguiente imagen se encuentra el primer grupo de opciones, veamos y definamos cada una de ellas…

RootDir = ruta / a / raíz

Establezca el directorio raíz predeterminado para que pacman se instale. Esta opción se usa si desea instalar un paquete en una partición montada temporal que es “propiedad” de otro sistema, o para una instalación chroot.

NOTA : Si la ruta de la base de datos o el archivo de registro no están especificados en la línea de comando o en pacman.conf, su ubicación predeterminada estará dentro de esta ruta de acceso raíz.

DBPath = ruta / a / db / dir

Reemplaza la ubicación predeterminada del directorio de la base de datos toplevel. Por defecto esta ruta es /var/lib/pacman/. La mayoría de los usuarios no necesitarán configurar esta opción.

NOTA : si se especifica, esta es una ruta absoluta y la ruta raíz no se antepone automáticamente.

CacheDir = ruta / a / caché / dir

Reemplaza la ubicación predeterminada del directorio caché de paquetes. Por defecto /var/cache/pacman/pkg/. Se pueden especificar múltiples directorios de caché, y se prueban en el orden en que están listados en este archivo de configuración. Si no se encuentra un archivo en ningún directorio de caché, se descargará al primer directorio de caché con acceso de escritura.

NOTA : esta es una ruta absoluta, la ruta raíz no se antepone automáticamente. Pacman en este directorio almacena los paquetes descargados y no elimina las versiones antiguas o desinstaladas automáticamente, mas adelante veremos como limpiarlo.

LogFile = / ruta / a / archivo

Reemplaza la ubicación predeterminada del archivo de registro de pacman. Que defecto es /var/log/pacman.log.

NOTA
: Esta es una ruta absoluta y el directorio raíz no está antepuesto. Al instalar un paquete, pacman mostrará sus dependencias opcionales sin registrarlas en este fichero.

GPGDir = ruta / a / gpg / dir

Anula la ubicación predeterminada del directorio que contiene los archivos de configuración para GnuPG. Por defecto ubicado en /etc/pacman.d/gnupg/. Este directorio debe contener dos archivos: pubring.gpgtrustdb.gpgpubring.gpgposee las claves públicas de todos los empaquetadores. trustdb.gpg contiene una llamada base de datos de confianza, que especifica que las claves son auténticas y confiables.

NOTA : esta es una ruta absoluta, la ruta raíz no se antepone automáticamente.

HookDir = ruta / a / gancho / dir

Agregue directorios para buscar ganchos alpm además del directorio de enlaces del sistema ( /usr/share/libalpm/hooks/). Este directorio se encuentra ubicado por defecto en /etc/pacman.d/hooks. Se pueden especificar múltiples directorios con ganchos en los directorios posteriores teniendo prioridad sobre los ganchos en los directorios anteriores.

NOTA : esta es una ruta absoluta, la ruta raíz no se antepone automáticamente. En otra oportunidad hablaremos sobre los ganchos alpm.

HoldPkg = paquete …

Si un usuario intenta – eliminar un paquete que figura en la lista HoldPkg, pacman solicitará confirmación antes de continuar. Se permiten patrones glob de estilo Shell.

XferCommand = / ruta / a / comando% u

Si se establece, se usará un programa externo para descargar todos los archivos remotos. Todas las instancias de %userán reemplazadas por la URL de descarga. Si está presente, las instancias de %oserán reemplazadas con el nombre del archivo local, más una extensión “.part”, que permite que los programas como wget para hacer el archivo se reanuden correctamente.

NOTA : Esta opción es útil para los usuarios que experimentan problemas con el soporte HTTP/FTP incorporado, o necesitan la asistencia de proxy más avanzada que viene con utilidades como wget.

CleanMethod = KeepInstalled & | Mantenerse al día

Si se establece KeepInstalled que es el valor predeterminado, la opción -Sc del comando pacman limpiará los paquetes que ya no están instalados (no están presentes en la base de datos) y que quedaron como versiones antiguas de paquetes en el fichero/var/cache/pacman/pkg/ no presentes en ninguna base de datos de sincronización).

UseDelta [= ratio]

Descargar archivos delta en lugar de paquetes completos si es posible. Las actualizaciones Delta pueden ahorrar tiempo y tamaño al descargar y actualizar el sistema. Los paquetes que se descargan serán una especie de “diferencia” entre nuevo paquete, que se utilizará para parchear el paquete anterior en el nuevo paquete al final de la descarga.

NOTA : Requiere que el paquete xdelta3 sea instalado. Si se especifica una relación (por ej. 0.5), se usa como punto de corte para determinar si se deben usar deltas. Los valores permitidos son entre 0.02.0; los valores razonables están entre 0.20.91.0 No se recomienda usar un valor anterior . El valor predeterminado es 0.7si no se especifica.

Arquitectura = auto | i686 | x86_64 |

Si se establece, pacman solo permitirá la instalación de paquetes de la arquitectura dada (por ejemplo , i686 , x86_64 , etc.). El valor especial auto usará la arquitectura del sistema, proporcionada a través de “uname -m”. Si no está configurado, no se realizan comprobaciones de arquitectura.

En la siguiente imagen se encuentra el segundo grupo de opciones, veamos y definamos cada una de ellas…

 

IgnorePkg = paquete …

Indica a pacman que ignore cualquier actualización de este paquete cuando realice una actualización de –sys . Se permiten patrones glob de estilo Shell.

IgnoreGroup = group …

Indica a pacman que ignore las actualizaciones de todos los paquetes de este grupo al realizar una actualización de –sys . Se permiten patrones glob de estilo Shell.

NoUpgrade = archivo …

Todos los archivos enumerados en la directiva NoUpgrade nunca serán tocados durante una instalación y/o actualización del paquetes, y los nuevos archivos se instalarán con una extensión .pacnew .

NoExtract = archivo …

Todos los archivos enumerados en la directiva NoExtract nunca se extraerán de un paquete en el sistema de archivos. Esto puede ser útil cuando no desea que se instale parte de un paquete.

UseSyslog

Registrar mensajes de acción a través de syslog (). Esto insertará entradas de registro en/var/log/messageso equivalentes.

Color

Habilita automáticamente los colores cuando la salida de pacman está solamente desde la terminal.

TotalDescarga

Al realizar la descarga, muestre la cantidad descargada, la tasa de descarga, la hora de llegada estimada y el porcentaje completado de toda la lista de descargas en lugar del porcentaje de cada objetivo de descarga individual. La barra de progreso todavía se basa únicamente en la descarga del archivo actual. Esta opción no funcionará si se usa XferCommand.

CheckSpace

Realiza una comprobación aproximada del espacio de disco disponible adecuado antes de instalar los paquetes.

VerbosePkgLists

Muestra el nombre, la versión y el tamaño de los paquetes de destino formateados como una tabla para las operaciones de actualización, sincronización y eliminación.

ILoveCandy

Esta opción no viene por defecto, pero si la agregamos obtendremos el efecto de pacman en los indicadores de cargar.

Y por ultimo tenemos los repositorios

 

 

[extra]

Este depósito se encuentra en .../extra/os/ desde su mirror favorito.

Contiene todos los paquetes que no se ajustan a los requisitos para estar en [core]. Por ejemplo: Xorg, gestores de ventanas, navegadores Web, reproductores multimedia, herramientas para trabajar con lenguajes como Python y Ruby, y mucho otros.

[community]

Este depósito se encuentra en .../community/os/ con su mirror favorito.

Contiene los paquetes provenientes del repositorio Arch User Repository que obtivieron los votos suficientes para ser adoptadas por un Usuario de Confianza.

[multilib]

Este depósito se encuentra en .../multilib/os/ desde su mirror favorito.

Contiene el software de 32 bits y las bibliotecas que se pueden utilizar para ejecutar y desarrollar aplicaciones de 32 bits en instalaciones de 64 bits.

[testing]

Advertencia: Tenga cuidado al activar el repositorio [testing]. Su sistema puede volverse inestable después de realizar una actualización. Solo los usuarios experimentados que saben cómo hacer frente a una potencial rotura del sistema deben utilizarlo. Dicho esto…

Este depósito se encuentra en .../testing/os/ desde su mirror favorito.

Es especial porque contiene paquetes que son candidatos para los repositorios [core] o [extra].

Los nuevos paquetes entran en [testing] si:

  • Se sospecha que puedan romper algo con una actualización y necesitan ser probado en primer lugar.
  • Se requieren otros paquetes que ser reconstruido. En este caso, todos los paquetes que se necesitan para la recompilación se ponen en [testing] primero y cuando se completan todas las recompilaciones, se les traslada de nuevo a los otros repositorios.

Este es el único depósito que puede tener colisiones de nombres con cualquiera de los repositorios oficiales.

Importante : Si está habilitado, tiene que ser el primer repositorio listado en su archivo /etc/pacman.conf.

Tenga en cuenta que no se trata de un repositorio que contenga «la más reciente» de las versiones de los paquetes. Parte de su propósito es mantener actualizaciones de paquetes que tienen el potencial de causar la rotura del sistema, ya sea por ser parte del conjunto de paquetes contenidos en [core], o por ser crítico de otra manera.

NOTA : Si activa [testing], también debe activar [community-testing].

[community-testing]

Este repositorio es como el repositorio [testing] pero con los paquetes que son candidatos para el repositorio [community].

Si lo activa, también tiene que activar [testing].

[multilib-testing]

Este repositorio es como el repositorio [testing] pero con los paquetes que son candidatos para el repositorio [multilib].

Si lo activa, también tiene que activar [testing].

También podemos incorporar repositorios no oficiales dentro de este fichero, pero no es muy recomendable, salvo que se tenga conocimiento de los riesgos de seguridad que esto pueda llegar a implicar, tanto por la procedencia del repositorio como por la falta de soporte que tengan los paquetes contenidos en este.

Fuente: Wiki Archlinux
Espero sea de utilidad.
Saludos Cristian.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada.