Pacman (Español)

From ArchWiki
Revision as of 05:34, 21 June 2006 by Nef (Talk | contribs) (spanish translation for pacman)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Descripción

El manejador de paquetes Pacman es una de las grandes ventajas de Arch Linux. Este combina un formato de paquetes binarios simple con un sistema de compilación fácil de usar (ver ABS). Pacman hace posible fácilmente manejar y personalizar paquetes, ya sea que vengan de los repositorios oficiales de Arch o que sean creaciones propias de los usuarios. El sistema de repositorios permite a los usuarios compilar y mantener sus propios repositorios de paquetes, lo que alienta el crecimiento de la comunidad y la contribución (ver AUR).

Pacman puede mantener un sistema actualizado sincronizando listas de paquetes con el servidor principal, haciendo muy sencillo de mantener para el administrador de sistemas. Este modelo cliente/servidor también te permite bajar/instalar paquetes con un simple comando, completo con todas las dependiencias requeridas (similar al apt-get de Debian).

NB: Pacman fue escrito y es mantenido por Judd Vinet, el creador de Arch Linux. Sin embargo es utilizado como el manejador de paquetes de otras distribuciones también, como FrugalWare (también ve [[1]]), Rubix, UfficioZero (en italiano, basado en Ubuntu!!), y por supuesto derivados de ArchLinux como Archie y AEGIS.

Uso

Pacman es un manejador de paquetes binarios y de código fuente. Combina varias ideas de Gentoo, Debian y Slackware para formar uno de los manejadores de paquetes más completo y fácil de usar disponible para Linux. Pacman puede bajar, instalar y actualizar paquetes ya sea de repositorios locales o remotos, con un manejo completo de dependencias, mediante herramientas fáciles de entender para crear tus propios paquetes.

Instalar y Borrar Paquetes

Antes de instalar y actualizar paquetes, es una buena idea sincronizar la base de datos local con los repositorios remotos.

pacman -Sy

Para instalar o actualizar un paquete individual o una lista de paquetes (incluyendo dependencias) utiliza el siguiente comando:

pacman -S paquete1 paquete2

Algunas veces hay más versiones de un paquete en diferentes repositorios (por ejemplo extra y testing). Puedes especificar cual quieres instalar:

pacman -S extra/paquete
pacman -S testing/paquete

También puedes combinar parámetros, por ejemplo este comando sincroniza la base de datos e instla un paquete:

pacman -Sy paquete

Para borrar un paquete individual, dejando todas sus dependencias instaladas:

pacman -R paquete

Para borrar el paquete y todas las dependencias que no son utilizadas por otro paquete instalado:

pacman -Rs paquete

Actualizar el Sistema

Pacman puede actualizar todos los paquetes del sistema con un comando. Esto puede tardar un rato, dependiendo de qué tan actualizado esté tu sistema.

pacman -Su

NB: puedes sincronizar las bases de datos Y actualizar tu sistema con el siguiente comando

pacman -Syu

De hecho es una práctica recomendable el correr el comando descrito arriba más o menos seguido.

Obteniendo Información de la Base de Datos

Pacman puede buscar paquetes en la base de datos, puedes escribir parte del nombre del paquete o alguna palabra que corresponda a su descripción utilizando el siguiente comando:

pacman -Ss paquete

Para buscar solamente dentro de los paquetes instalados:

pacman -Qs paquete

Una vez que ya conozcas el nombre del paquete que estás buscando, puedes obtener algo de información sobre el paquete.

pacman -Si paquete
pacman -Qi paquete

Para una lista de archivos contenidos en un paquete:

pacman -Ql paquete

También puedes saber a qué paquete pertenece un archivo de tu sistema.

pacman -Qo /ruta/a/archivo

Buscar Simultáneamente Repositorios y Paquetes Instalados

Puedes utilizar el siguiente script de bash para hacer el equivalente de llamar simultáneamente pacman -Ss foo y pacman -Qs foo, para ver cuál de los paquetes está instalado en tu sistema. Los que estén en tu sistema quedarán marcados con un asterisco. (No traduje el script).

#!/bin/bash

if [ -z "$1" ]; then
echo "usage: pacsearch [regex pattern]"
echo "usage: pacsearch -h|--help"
exit 0
fi

if [ "$1" = "-h" -o "$1" = "--help" ]; then
echo "usage: pacsearch [regex pattern]"
echo "	Like pacman -Ss [regex pattern] but installed packages are flagged with a *"
echo "usage: pacsearch -h|--help"
echo "	Prints this message. No other options allowed"
exit 0
fi

firstchar=`echo "$1" | cut -c1`
if [ $firstchar = "-" ]; then
echo "Sorry, $1 is not a valid option!"
echo "usage: pacsearch [regex pattern]"
echo "usage: pacsearch -h|--help"
exit 0
fi

instpkg=`pacman -Qs $1 | egrep '^[^ ]' | sed 's|^local/||' | sed 's/ .\+$//'` 
syncdump=`mktemp`
pacman -Ss $1 > $syncdump

for pkg in $instpkg; do
	sed -i "s@^\(.\+/$pkg\) @\*\1 @" $syncdump
done

cat $syncdump

Guarda este script en alguno de tus paths (por ejemplo ~/bin) y llámalo pacsearch. Hazlo ejecutable con

chmod a+x pacsearch

Ahora por ejemplo si escribes

pacsearch ^qt

La salida es parecida a lo siguiente:

extra/qca 1.0-1
   QT Cryptography Architecture
extra/qsynth 0.2.5-1
   Qt GUI for fluidsynth
*extra/qt 3.3.5-8
   The QT gui toolkit.
extra/qt-doc 3.3.5-1
   The QT gui toolkit documentation.
extra/qtella 0.6.5-1
   Qtella is a Gnutella client for Linux using QT
extra/qtiplot 0.7.7-1
   Data analysis and scientific plotting - free clone of Origin
extra/qtparted 0.4.5-3
   A Partition Magic clone written in C++ using the Qt toolkit
extra/qwt 4.2.0-3
   Qt Widgets for Technical Applications
extra/qwtplot3d 0.2.6-2
   Qt/OpenGL-based C++ programming library containing 3d-widgets

Así, en este caso sabrías que ninguno de los paquetes de arriba está instalado en tu sistema más que el paquete qt.

NB1: existe una petición para integrar la funcionalidad arriba descrita en pacman, así que el 'truquito' del script de bash puede volverse obsoleto con alguna versión nueva de pacman.

NB2: puedes modificar el script de bash arriba descrito utilizando lo que se dice en este wiki para que los paquetes instalados se marquen de un color diferente en la salida.

Otros Usos

Pacman es una herramienta muy completa para manejo de paquetes, abajo se incluyen algunas otras funcionalidades.

  • Bajar un paquete sin instalarlo:
pacman -Sw paquete
  • Instalar un paquete local (no de un repositorio):
pacman -A /ruta/al/paquete/paquete-version.pkg.tar.gz
  • Borrar los paquetes de versiones viejas:
pacman -Sc
  • Borrar todo el caché de pacman (/var/cache/pacman/pkg):
pacman -Scc

Para una lista más detallada de los parámetros que puedes utilizar lee pacman --help o man pacman.


Configuración

La configuración de pacman se encuentra en /etc/pacman.conf. Tiene dos secciones principales este archivo:

Opciones Generales

Las opciones generales se encuentran bajo la sección [options]. Aquí puedes especificar qué archivos no deben de ser actualizados. Esto es útil para archivos importantes del sistema. La sintaxis es muy simple:

NoUpgrade   = etc/passwd etc/group etc/shadow etc/sudoers
NoUpgrade   = etc/fstab etc/raidtab etc/ld.so.conf
NoUpgrade   = etc/rc.conf etc/rc.local
NoUpgrade   = etc/modprobe.conf etc/modules.conf
NoUpgrade   = etc/lilo.conf boot/grub/menu.lst

Otra opción útil es IgnorePkg. Por ejemplo si modificaste o parchaste un paquete específico, agregarlo a la línea IgnorePkg va a evitar que pacman lo actualice cuando una versión nueva de ese paquete esté disponible. Sin embargo pacman te va a avisar de la versión más nueva disponible para que tú decidas si quieres actualizar tu versión personalizada. Esta opción también es útil para paquetes grandes como openoffice-base, si quieres evitar bajar y actualizar todo cada que haya una actualización menor en el repositorio. Como pacman siempre te avisa sobre la versión más nueva, puedes decidir cuándo actualizar.

Repositorios

En esta sección defines qué repositorios utilizarás. Pueden ser definidos directamente ahí o puedes incluirlos desde otro archivo. Lo último es útil para los repositorios oficiales que tienen muchos mirrors.

[repository-name]
Server = ftp://server.net/repo
[current]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/current

Para más información lee man pacman.

Links Relacionados

Boost Pacman
Colored Pacman output
Downgrade packages
Redownloading all installed packages
Server configuration in pacman.conf
ArchLinux User-community Repository (AUR)
Local repository HOW-TO
Custom local repository with ABS and gensync
Howto Upgrade via Home Network
Pacman GUI Frontends