Pacman-G2

Un article de Wikipédia, l'encyclopédie libre.

Le gestionnaire de paquets Pacman-g2 accompagne la fameuse distribution Frugalware. C'est une version complètement réécrite de la version cvs non-encore-sortie de pacman-g1 d'Aurelien Foret (Judd Vinet avait écrit l'ancien pacman-g1). Si vous souhaitez manipuler les paquets, vous devez toujours utiliser la commande pacman-g2. Vous trouverez ci-dessous quelques commandes de base :


--> Les commandes pacman et pacman-g2 sont identiques, pacman étant un lien symbolique vers pacman-g2. Toutefois nous recommandons l'utilisation de pacman-g2 car le lien symbolique risque de disparaitre prochainement avec la sortie de Kalgan ou une release suivante.

Sommaire

[modifier] Les commandes principales de Pacman-g2

Attention, ces commandes sont à connaître !!!

[modifier] Rafraichîr la base de données des paquets

 #  pacman-g2 -Sy

Met à jour la base de données des paquets. Avant de rechercher un paquet ou d'en installer depuis un serveur FTP, vous devriez utiliser cette commande.

[modifier] Mise à jour du système

 #  pacman-g2 -Su

Met à jour tous les paquets actuellement installés sur le système dont une version plus récente existe sur les serveurs FTP.

On peut combiner les commandes précédentes:

 #  pacman-g2 -Syu 

Ce qui va mettre à jour la base de donnée, comparer avec les paquets installés localement et installer dans la foulée toutes les mises à jours disponibles.

[modifier] Installer un paquet

 #  pacman-g2 -S nomdupaquet

[modifier] Désinstaller un paquet

 #  pacman-g2 -Rc nomdupaquet

[modifier] Rechercher un paquet

 #  pacman-g2 -Ss nomdupaquet
    • Note**: la recherche se fait également dans les descriptions de paquet

[modifier] Installer un paquet depuis un fichier .fpm

 #  pacman-g2 -A nomdupaquet.fpm


[modifier] Mettre à jour un paquet depuis un fichier .fpm

 #  pacman-g2 -A nomdupaquet.fpm

cela fonctionne aussi avec une adresse internet

 #  pacman-g2 -A http://www.machin.com/blabla/nomdupaquet.fpm

[modifier] Nettoyer le cache

 #  pacman-g2 -Sc

[modifier] Connaître les paquets orphelins

 #  pacman-g2 -Qe


[modifier] Quelques autres commandes
 #  pacman-g2 -Sup

Affiche l'url de tous les paquets que pacman doit télécharger. De cette façon vous pourrez télécharger les paquets de n'importe où et les copier dans /var/cache/pacman/pkg. C'est très pratique si vous avez une bande passante limitée sur votre ordinateur mais que vous pouvez télécharger sans contraintes ailleurs (bibliothèque, cybercafé, lieu de travail/études).

 #  pacman-g2 -S sendmail

Installe sendmail avec toutes ses dépendances depuis le serveur FTP. S'il entre en conflit avec n'importe quel autre paquet, pacman vous demandera s'il faut le(s) retirer.

 #  pacman-g2 -Ss perl

Cherche dans la base de donnée un paquet correspondant (sur le serveur FTP). Cet exemple va probablement afficher le paquet perl et ceux des modules perl.

Vous pouvez évidemment traiter les paquets comme des fichiers normaux, et les ajouter/supprimer/.. indivuellement et manuellement. Quelques exemples:

 #  pacman-g2 -U zsh-4.2.1-1.fpm

Ajoute (ou met à jour s'il est déjà installé) le paquet zsh, depuis le fichier zsh-4.2.1-1.fpm qui se trouve dans le répertoire courant

 #  pacman-g2 -R qt

Supprime le paquet Qt.

 #  pacman-g2 -Qs perl

Recherche dans la liste des paquets installés ceux qui contiennent la chaîne perl.

Généralement, si vous souhaitez désactiver la vérification de conflit de fichiers, vous pouvez utiliser le paramètre -f, et si vous souhaitez désactiver les vérifications de dépendances vous devriez utiliser le switch -d.

 #  pacman-g2 -Qi perl

Affiche toutes infos du paquet perl

 #  pacman-g2 -h

Affichera les options évoquées précédemment, et bien plus encore. Encore une fois, ce ne sont que les bases.

[modifier] Manuel

tapez:

 man pacman-g2


[modifier] Référence croisée Apt - pacman-g2

Pour ceux qui ont utilisés Apt sur d'autres distributions (Ubuntu, Debian...), voici les équivalences des commandes avec celles de pacman-g2.

^ Action ^ Commande APT ^ Commande Pacman ^ | Rafraichir la base de donnée des paquets: | apt-get update | pacman-g2 -Sy | | Mettre à jour les paquets vers la nouvelle version: | apt-get upgrade | pacman-g2 -Su| | Installer un nouveau paquet: | apt-get install foo | pacman-g2 -S foo| | Retirer un paquet: | apt-get remove foo | pacman-g2 -Rc foo| | Chercher dans la liste des paquets: | apt-cache search foo | pacman-g2 -Ss foo| | Installer un paquet depuis un fichier: | dpkg -i foo.deb | pacman-g2 -A foo.fpm| | Nettoyer le cache des paquets: | apt-get clean | pacman-g2 -Sc|


[modifier] Optimiser pacman-g2

pacman-g2-optimize est un petit "hack" qui a pour but d'améliorer les performances de pacman-g2 lors de la lecture/écriture de sa base données sur le système.

Parceque pacman-g2 utilise des petits fichiers pour garder une traces des paquets, il arrive que ces fichiers se fragmentent avec le temps. Le script va relocaliser ces petits fichiers dans un même lieu sur votre disque dur. Ceci en résultera que disque dur les lira plus rapidement.


 #  pacman-g2-optimize

[modifier] Problèmes avec pacman-g2

Si le gestionnaire de paquet venait à se planter, nous aurions alors besoin d'une trace de la pile d'exécution fournis par gdb. Voici les instructions afin d'obtenir la pile d'exécution:

 *Cherchez la ligne de commande qui déclenche le plantage. Par exemple: pacman-g2 -Sy
 *Télécharger le dépôt darcs de pacman-g2 et compiler le en activant les options de débogage:
 darcs get --partial
 http://darcs.frugalware.org/repos/pacman-g2
 cd pacman-g2
 sh autogen.sh
 ./configure --enable-debug
 make
 *Puis lancez pacman-g2 dans gdb et obtenez la trace:
 cd src/pacman-g2
 sudo libtool gdb ./pacman-g2
 run -Sy
   *Quand pacman-g2 se plante, taper bt pour obtenir la pile. Voici un exemple:
 Program received signal SIGSEGV, Segmentation fault.
 0x0805035e in pacman_sync (targets=0x0) at sync.c:354
 354             *p = 1;
 (gdb) bt
 #0  0x0805035e in pacman_sync (targets=0x0) at sync.c:354
 #1  0x08054594 in main (argc=2, argv=0xbfee1844) at pacman.c:609
 (gdb)
 *Joindre l'affichage produit par bt à votre rapport d'erreur.


[modifier] Boostez pacman avec wget

D'abord installez wget:

 #  pacman -S wget

Puis éditez pacman-g2.conf:

 #  nano /etc/pacman-g2.conf

Décommentez (enlever le symbole #) la ligne: **#XferCommand = /usr/bin/wget ....**

Sauvegarder le fichier et quitter nano.

Source: http://wiki.archlinux.org/index.php/Boost_Pacman


[modifier] Le fichier pacman-g2.conf en détails
  1. /etc/pacman.conf
  1. See the pacman-g2 manpage for option directives
  1. GENERAL OPTIONS

[options] LogFile = /var/log/pacman-g2.log HoldPkg = pacman-g2 glibc bash coreutils chkconfig

  1. Issue a warning before install when you haven't done a -Sy for X days

OldDelay = 3

  1. Use this if you need advanced features. YOUR_OTPS can be for example --limit-rate 800K
  2. XferCommand = echo %o |sed -r 's/.(fpm|fdb).part$//'; curl -C - --progress-bar -o %o %u YOUR_OTPS; echo
  1. If you use the -current tree, you should disable the -stable
  2. tree to avoid conflicts
  1. -current

Include = /etc/pacman.d/frugalware-current

  1. -stable
  2. Include = /etc/pacman.d/frugalware
  1. An example of a custom package repository. See the pacman-g2 manpage for
  2. tips on creating your own repositories.
  3. [custom]
  4. Server = file:///home/custompkgs


  1. [bmf]
  2. Server = http://ftp.frugalware.org/pub/other/people/vmiklos/bmf/frugalware-i686/


 LogFile     = /var/log/pacman-g2.log

Le fichier dont pacman-g2 conserve son historique

 HoldPkg     = pacman-g2 glibc bash coreutils chkconfig

Liste des paquets ne pouvant être désinstallés

 OldDelay    = 3

Temps à partir du quel pacman-g2 considère que la copie de la base de données de paquets est trop vieille. Dans cet exemple, 3 jours.


 #[bmf]
 #Server = http://ftp.frugalware.org/pub/other/people/vmiklos/bmf/frugalware-i686/

Exemple d'utilisation avec des dépôts externes.