Pacman et Yaourt

From Manjaro Linux
Jump to: navigation, search

Retour à l'accueil

Description de Pacman

Dans la plupart des distributions GNU-Linux, les logiciels sont disponibles sous forme d'archives appelées paquets ( packages en anglais ) et centralisés sur des serveurs appelés dépôts, sorte de boutiques d'applications en ligne (la marque à la pomme n'a rien inventé). Manjaro ne fait pas exception et gère ses logiciels de cette façon.

Pacman est un gestionnaire de paquets créé pour ArchLinux, et par conséquent utilisé aussi dans Manjaro. Il est capable d'installer, de désinstaller, de mettre à jour, et de configurer les paquets logiciels, tout en gérant les dépendances entre eux, pour assurer la cohérence du système.

Pacman s'utilise en ligne de commandes, donc toutes les commandes citées dans cet article sont à entrer dans un Terminal; lorsque les commandes ont besoin des privilèges administrateur, elles sont précédées par sudo (et le mot de passe de l'utilisateur lui sera demandé).

Astuce: Si sudo n'est pas mentionné, cela signifie qu'un utilisateur sans privilège peut lancer la commande

Synchroniser avec les dépôts Manjaro

La première chose à faire avant d'installer ou mettre à jour est de synchroniser les listes locales de paquets avec les listes des serveurs, ce qui se fait avec la commande suivante:

sudo pacman -Sy

Dans certains cas, il peut être utile de forcer le remplacement des listes locales, même si elles sont déjà à jour; il suffit de doubler le y.

sudo pacman -Syy


Mettre à jour le système

Les mises à jour sont fréquentes, puisque Manjaro est une Rolling-release, mais si on les fait régulièrement, il y a rarement de gros volumes de données à télécharger. Manjaro est fournie avec un utilitaire capable de faire les mises à jour, Kalu, toutefois, ceux qui veulent garder le contrôle ou en savoir plus sur ce qui se passe préfèreront le faire avec Pacman.

Si on vient de synchroniser les listes de paquets logiciels, comme expliqué au chapitre précédent, il suffit de lancer cette commande:

sudo pacman -Su

Si les mainteneurs des dépôts ont fait régresser les versions de certains paquets, il peut être utile d'autoriser Pacman à downgrader:

sudo pacman -Suu

mais il est possible de tout faire (synchro et mise à jour) en une seule commande:

sudo pacman -Syu

Cette commande est celle qui convient pour une mise à jour normale

il est possible de faire une synchro forcée (qui est parfois nécessaire, si la base est corrompue):

sudo pacman -Syyu

ou encore, si un paquet a régressé de version dans le dépôt (pour downgrader):

sudo pacman -Syyuu

Dans tous les cas, Pacman vous demandera de confirmer l'installation des nouveaux paquets:

Procéder à l'installation ? [O/n]

à quoi il suffit d'appuyer sur o (pour «oui») et Entrée (mais on peut aussi refuser, avec n et tout s'arrêtera).

Vous pouvez rester devant à regarder, Pacman détaille ce qu'il fait: téléchargement des paquets, vérification de leur intégrité, installation, contrôle de l'espace disque, et éventuellement éxécution de tâches en rapport avec certains paquets.

Recherche d'un paquet

Lorsqu'on cherche un logiciel dans un but précis, il va falloir le chercher dans les listes de ce qui est disponible (les fameuses listes qu'on a synchronisé au début). Pour cela, on peut lancer une recherche sur un mot-clé:

Astuce: Il n'est pas nécessaire d'avoir les droits d'administration pour la recherche: sudo est facultatif
pacman -Ss [mot-clé]

le mot-clé peut être tout ou une partie du nom du logiciel:

pacman -Ss leafp

extra/leafpad 0.8.18.1-3
   A notepad clone for GTK+ 2.0

il peut aussi correspondre à la description du logiciel:

pacman -Ss notepad
extra/leafpad 0.8.18.1-3
   A notepad clone for GTK+ 2.0


Installer des logiciels

Une fois que la recherche nous a donné la réponse qu'on cherchait, on peut installer le logiciel voulu; ici, il faut indiquer le nom exact du paquet, tel que l'a fourni la recherche:

sudo pacman -S [nom du paquet]

Donc si on reprend notre exemple avec leafpad:

sudo pacman -S leafpad

Pacman voudra peut-être installer d'autres paquets en plus de celui que vous lui demandez (dépendances), mais dans tous les cas, il vous demandera de confirmer, comme on l'a vu pour la mise à jour. Il est bien sûr possible de demander l'installation de plusieurs paquets en une seule commande; il suffit de mettre tous les noms, séparés par des espaces:

sudo pacman -S leafpad supertux frozen-bubble


Désinstaller des logiciels

Si vous souhaitez désinstaller un paquet logiciel, il suffit de lancer la commande:

sudo pacman -R [nom du paquet]

Par exemple, avec notre leafpad:

sudo pacman -R leafpad

Ceci dit, on a vu que Pacman installait parfois des paquets additionnels pour satisfaire les dépendances; il peut donc être utile de demander à Pacman de supprimer également les dépendances du paquet:

sudo pacman -Rs leafpad

Évidemment, Pacman supprimera ces dépendances uniquement si elle ne sont pas requises par un autre paquet encore installé. Comme pour l'installation, Pacman vous indique quels paquets il va supprimer, et vous demande de confirmer.

En temps normal, lors d'une désinstallation, Pacman conservera une sauvegarde des fichiers de configuration du logiciel (pour une ré-installation ultérieure), mais il est possible de lui dire de ne pas garder la sauvegarde:

sudo pacman -Rsn leafpad


Installer un paquet hors-dépôt

Supposons que vous ayez besoin d'un paquet non-disponible dans les dépots, mais que vous l'ayez trouvé ailleurs, et téléchargé, il est possible de l'installer avec cette commande:

sudo pacman -U [chemin vers le paquet]

Par exemple, j'ai mis le paquet pamac-0.1.1-2-any.pkg.tar.xz dans mon dossier personnel, et je souhaite l'installer:

sudo pacman -U /home/david/pamac-0.1.1-2-any.pkg.tar.xz

Bien sûr, la désinstallation se fait comme pour les paquets installés via le dépôt.

Astuce: En règle générale, installer un paquet hors-dépot est déconseillé; cela va à l'encontre de la sécurité que procure le système de signatures de Pacman


Informations sur les paquets locaux

Pacman peut fournir quelques informations sur les paquets installés, grâce à l'option -Q. Pour avoir des infos générales sur un paquet (notre leafpad par exemple):

pacman -Qi leafpad
Astuce: si le paquet n'est pas installé, utilisez l'option -S : pacman -Si leafpad

Connaitre la liste des fichiers appartenant à un paquet:

pacman -Ql leafpad

Ou inversement, si on veut savoir à quel paquet appartient un fichier (donner le chemin complet du fichier):

pacman -Qo /etc/pacman.d/mirrorlist

ce qui vous répondra:

/etc/pacman.d/mirrorlist appartient à pacman-mirrorlist 20121108-1

En combinant plusieurs options, on peut connaître la liste des paquets orphelins (qui ont été installés comme dépendances mais ne sont plus requis par aucun paquet):

pacman -Qdt

Pour vérifier l'intégrité d'un paquet, entrez la commande suivante:

pacman -Qkk leafpad

Pour retrouver toutes les dépendances d'un paquet, entrez la commande suivante:

pactree leafpad

Pour connaître tous les logiciels qui nécessitent d'avoir ce paquet d'installé pour fonctionner, entrez la commande suivante:

pactree -r leafpad

Nettoyage du cache

Pacman conserve les paquets installés dans /var/cache/pacman/pkg. Le but est de garder à disposition ces paquets pour pouvoir les réinstaller, voire revenir à la version précédente d'un paquet, si un problème survient. Comme Manjaro est une distribution à mise à jour permanente, l'installation de nouvelles versions de logiciels est fréquente, et par conséquent, le cache se remplit. Il est courant d'avoir, au bout de quelques mois d'utilisation, un cache de plusieurs Go.

Il peut donc être utile de faire un peu de nettoyage...

Dans un premier temps, on peut supprimer les paquets qui ne sont plus installés, et les anciennes versions des paquets installés, mais conserver les versions courantes des paquets installés (ce qui évite de re-télécharger en cas de réinstallation d'un logiciel); ça libère déjà beaucoup de place:

sudo pacman -Sc

On peut également vider entièrement le cache, et ne rien conserver:

sudo pacman -Scc

Dans les deux cas, Pacman demandera confirmation, et proposera également de supprimer les anciennes bases de données des dépôts.

Ce nettoyage est utile quand on a créé une partition racine un peu juste en taille, en revanche, il ne sera plus possible de revenir à une version antérieure d'un logiciel en cas de problème. Un bon compromis est donc de conserver plusieurs versions de chaque paquet (les plus récentes) et de supprimer les autres. Pour cela, on peut utiliser un outil bien pratique de pacman : paccache. Par exemple, pour ne garder que les 3 versions les plus récentes de chaque paquet, la commande est la suivante :

paccache -rk3

Pour explorer davantage les options de paccache :

paccache -h

On peut modifier le nombre de versions de chaque paquet que l'on souhaite conserver, en fonction de l'espace disponible sur la partition racine et du degré de précaution que l'on souhaite prendre. Par exemple, si on utilise les dépôts Stable de Manjaro (les dépôts par défaut), 2 ou 3 versions suffiront probablement. En revanche, si on utilise les dépôts Unstable, il est plus prudent de conserver au moins les 4 dernières versions de chaque paquet.

Aller plus loin

Une fois qu'on est familier avec toutes ces commandes de bases, il est possible d'en découvrir d'autres, pour des tâches précises (et parfois dangereuses pour le système, attention...), en consultant le manuel:

man pacman

Pour fermer le manuel, appuyez sur q.

Yaourt, une interface pour Pacman

Manjaro fournit aussi Yaourt, un autre logiciel de gestion des paquets, qui est en fait une surcouche pour Pacman.

Yaourt peut être utilisé de la même façon que Pacman, car il supporte les même options, mais il fournit des fonctions supplémentaires.

Astuce: Un point important de Yaourt est qu'il s'utilise sans être administrateur, sans sudo; il demande le mot de passe quand il en a besoin

Utilisation comme Pacman

On peut passer à Yaourt toutes les options de Pacman; dans ce cas, il se comportera exactement comme ce dernier, la couleur en plus...

Mode interractif

En utilisant Yaourt sans option, avec juste un mot-clé, Yaourt vous retournera un résultat de recherche sous forme de liste numérotée (en couleur), et vous demandera de choisir dans la liste ce que vous voulez installer, en donnant le ou les numéros correspondants. par exemple:

yaourt leafpad

va répondre:

1 extra/leafpad 0.8.18.1-3
    A notepad clone for GTK+ 2.0
2 aur/leafpad-le 0.8.17le-1 (33)
    Limited edition series of the Leafpad text editor
3 aur/leafpad-noheader 0.8.18.1-2 (0)
    A notepad clone for GTK+ 2.0 with print header disabled
==> Numéro(s) des paquets à installer (ex: 1 2 3 ou 1-3)
==> ----------------------------------------------------
==> 

(en couleur normalement) Il suffira de taper le numéro de ce qu'on veut dans la liste, puis entrée, et Yaourt l'installera.

Il faut noter que Yaourt fournit aussi les résultats de la recherche dans le dépôt AUR.


AUR

AUR (Arch User Repository) ne contient pas de paquets mais des Pkgbuilds. Ces Pkgbuilds sont des fichiers qui indiquent où télécharger les fichiers (sources le plus souvent), comment les compiler, et comment les installer. L'avantage de AUR est de fournir des logiciels introuvables dans les dépôts ordinaires de Manjaro. En revanche ces logiciels ne sont pas supportés par les développeurs de Manjaro (ou de Arch), et on peut avoir de mauvaises surprises. Un moyen de se faire une idée d'un logiciel de AUR est de regarder le vote, indiqué entre parenthèses dans le résultat fourni par Yaourt.

yaourt est donc capable d'installer les logiciels de AUR aussi simplement que les paquets des dépôts.

Mises à jour

Nous avons précisé que Yaourt peut utiliser les mêmes commandes que Pacman; pour mettre à jour, on peut donc faire:

yaourt -Syu

Toutefois, si on a installé des logiciels en provenance de AUR, on peut vouloir les mettre à jour aussi:

yaourt -Syua

Statistiques

Yaourt fournit aussi une commande plutôt pratique pour savoir où on en est de ses paquets:

yaourt --stats

Et Packer ?

Packer fournit les mêmes fonctions que Yaourt, sauf celles pour désinstaller, le développeur de Packer considérant que cette tache peut-être effectuée par Pacman.

Installation manuelle en console

Sans yaourt, cette procédure nécessite l'installation des paquets base-devel et git.

Recherchez un paquet sur le site de AUR.

Dans la page du descriptif du paquet, vous trouverez un champ : URL de clone: _https://aur.archlinux.org/NOM_DU_PAQUET.git (lecture seule)

Recopiez cette URL et exécutez les commandes :

 git clone https://aur.archlinux.org/NOM_DU_PAQUET.git
 cd NOM_DU_PAQUET
 makepkg -sfci

Après installation vous pouvez supprimer le répertoire créé.

Le logiciel AUR pourra être désinstallé par une commande pacman classique -R

En cas de problèmes

En cas de soucis ou de disfonctionnements de Pacman, vous pouvez consulter Problèmes_avec_Pacman

Page originale du wiki anglais

Retour à l'accueil