lunes, 23 de abril de 2012

¿Que es Pacman?

  Hoy voy hablar del gestor de paquetes de la distribución GNU/Linux, Arch Linux,  PACMAN.  También se utiliza  en FrugalWare, Rubix, UfficioZero (basado en Ubuntu) y en Archie y AEGIS.

  Fue creado y es mantenido  por el creador de ArchLinux  Judd Vinet (su blog: http://www.zeroflux.org/blog)

  Puede mantener un sistema actualizado al día mediante la sincronización de la lista de paquetes con el servidor principal. Este modelo cliente/servidor permite bajar/instalar paquetes completos con un simple comando.

  Está escrito en lenguaje programación C, utiliza archivos empaquetados en tar y comprimidos en gzip o xz para todos los paquetes, cada uno de los cuales contienen 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 ABS (Linux Arch Build System) utilizados para crear los paquetes desde el código fuente.

  El paquete oficial pacman contiene también otras herramientas útiles, tales como makepkg, pactree, vercomp,...

  Para su configuración solo tenemos que editar el archivo /etc/pacman.conf, donde se pueden añadir repositorios, poner opciones especiales a pacman e incluso crear repositorios propios.


  Existen varios front ends para pacman que permiten realizar el mantenimiento de los paquetes de forma gráfica.

Interfaz KDE/Qt
  • Shaman, es un completo frotend en QT4 para libalpm.

  • pacmnager-svn, un gestor de paquetes en QT4 basado en pacman.

  • Chase, demonio de KDE que maneja actualizaciones mediante libapqm
 Interfaz Gnome/GTK+

  • guzuta, front-end escrito en PYGTK

  • pacman-notifier, simple icono en bandeja que avisa acerca de actualizaciones, también permite gestionar actualizaciones. Escrito en Ruby y GTK

  • alunn, notificador en bandeja de actualizaciones y noticias de archlinux.org

  • pacman-svn; pacupdate los dos son un applet de la bandeja de sistema, que notifica al usuario de actualizaciones disponibles. 

 Packagekit un sistema diseñado para hacer la instalación y las actualizaciones de los paquetes más fácil. Para Gnome sería gnome-packagekit y para KDE apper.

 APPSET, esta programado con las librerias Qt pero puede usarse en cualquier entorno de escritorio. Para instalarlo desde AUR; appset-qt


   Para evitar que un paquete se actualice utilizamos IgnorePkg=Linux, y si fuera bloquear paquetes por grupos utilizamos IgnoreGroup=Gnome.

PRINCIPALES COMANDOS  DE PACMAN 

 
  •  #pacman -S paquete_1 .- Instalar un paquete.

  •  #pacman -R paquete_1 .-Eliminar paquete.

  • #pacman -Rs paquete_1.-Eliminar paquete y sus dependencias.

  • #pacman -Rsc paquete_1.-Eliminar paquete todas sus dependencias y los paquetes que requieran esas dependencias. 

  • #pacman -Syu.- Actualizar todos los paquetes.

  • #pacman -Ss paquete_1 .-Buscar paquetes en la base de datos.

  • #pacman -Q .- Muestra una lista de todos los paquetes instalados en el sistema. 

  • #pacman -Qs paquete1 .- Buscar paquetes dentro de los paquetes instalados.

  •  #pacman -Si paquete1.-Muestra información sobre determinado paquete

  • #pacman -Qi paquete1.- Muestra información sobre un paquete instalado.

  • #pacman -Qii paquete1.- Muestra información sobre un paquete instalado y la lista de archivos de copia de seguridad y sus estados.

  • #pacman -Ql paquete1.- Para obtener la lista de archivos instalados por un paquete.

  • #pacman -Qo /path/to/del/archivo .- Para obtener el nombre del paquete que instalo el archivo.

  • #pacman -Qdt .- Para obtener todos los paquetes instalados como dependencias no requeridas.

  • #pacman -Syu  paquete1 .- Actualiza el sistema e instala el paquete.

  • #pacman -Sw paquete1 .- Descarga el paquete sin instalarlo

  • #pacman -U  /path/del/paquete/nombrepaquete.- Instalar paquete local.

  • #pacman -U http://w.ejemplo.com/rep/paquete1 .- Instalar paquete remoto.

  • #pacman -Sc .-Borra todos los paquetes antiguos guardados en la cache pacman.

  • #pacman -Scc .-Borra todos los paquetes guardados en la cache pacman ubicado /var/cache/pacman/pkg.

  • #pacman -Sf .- Fuerza la instalación del paquete.
  • #pacman -[S|U|R]d .- Se saltan los controles de dependencia versión. Los nombres de paquetes se siguen comprobando. Para saltar todas las comprobaciones, poner dos veces la d: pacman -[S|U|R]dd.  


  Para conocer más comandos echar un vistazo a #man pacman

Verificar la firma de paquetes

  La verificación  de firmas de paquetes está deshabilitada,  debemos inicializar pacman keyring.

# pacman -key --init

  Esto crea los archivos de llaves pubring y secring con los permisos necesarios y genera el archivo de configuración /etc/pacman.d/gnupg/gpg.conf. Se recomienda cambiar el keyserver (hkp://keys.gnupg.net) por (hkp://pgp.mit.edu)

# nano /etc/pacman.d/gnupg/gpg.conf

no-greeting
no-permission-warning
lock-never
#keyserver hkp://keys.gnupg.net
keyserver hkp://pgp.mit.edu
keyserver-options timeout=10

  Procedemos a modificar el archivo de configuración pacman, como se ha creado un archivo nuevo  /etc/pacman.conf.pacnew. Tendremos que  renombrar  el nuevo y antes de hacer este paso si en el pacman.conf  tienes alguna configuración personal debes copiar dichas opciones manualmente en el pacman.conf.pacnew.

# mv /etc/pacman.conf /etc/pacman.conf.old
# mv/etc/pacman.conf.pacnew /etc/pacman.conf

Ahora procedemos a modificar el archivo pacman.conf

# nano /etc/pacman.conf

  Buscamos el parámetro SigLevel que tiene asignado el valor "Never" y lo cambiamos por "Optional TrustedOnly" , para que la verificación de firmas sea opcional, pues hay paquetes no firmados, y en caso de existir la firma debe ser de una fuente fiable.

  Debemos especificar el nivel de verificación en cada repositorio, usamos PackageRequired en [core] y PackageOptional para [extra] y [community].

  Ahora guarde los cambios y realice una actualización:

# pacman -Syu

  Si tenemos algún error tendremos que importar las firmas PGP confiables a nuestro keyring. Vamos a importar las cinco master keys, ya que se usaron para firmar todas las demás.

  Vamos a crear un script (establecerá automáticamente como confiable cualquier llave que descargues.  ¡Se recomienda que verifiques las huellas antes de usar pacman!) :

nano llave.sh

for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do

 pacman-key --recv-keys $key
 pacman-key --lsign-key $key
 printf `trust\n3\nquit\n` | gpg --homedir/etc/pacman.d/gnupg/ \ -- no  permission-warning --comand -fd 0 --edit-key ~key

done

  Cambiamos el atributo chmod a+x llave.sh, y lo ejecutamos ./llave.sh

  Y finalmente podrás instalar y actualizar normalmente el sistema

# pacman -Syu




  Para desactivar la comprobación de firmas, porque no estamos interesados en la firma de paquetes, tendremos que desastivar la firma PGP de paquetes. Edita /etc/pacman.conf  y descomenta SigLevel=Never
Si decides hacer esto no tendrás que configurar el llavero de pacman-key, pero debes cambiar esta opción si decides activar la verificación de paquetes.


  Si quieres borrar o restablecer todas las llaves instaladas en tu sistema puedes borrar /etc/pacman.d/gnupg  y volver a ejecutar pacman-key --init.








No hay comentarios:

Publicar un comentario