Pacman (Español)
From ArchWiki
| i18n |
|---|
| Česky |
| Deutsch |
| English |
| Español |
| Français |
| Italiano |
| Nederlands |
| Polski |
| Português de Portugal |
| Romanian |
| Русский |
| 简体中文 |
| 한국어 |
Contents |
[edit] 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.
[edit] 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.
[edit] 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
[edit] 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.
[edit] 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
[edit] 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.
[edit] 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.
[edit] Configuración
La configuración de pacman se encuentra en /etc/pacman.conf. Tiene dos secciones principales este archivo:
[edit] 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.
[edit] 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.
[edit] 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