Comment utiliser la gestion des packages Arch Linux

De Get Docs
Aller à :navigation, rechercher

Commencer


Arch Linux fournit des fonctionnalités de gestion de packages similaires à celles trouvées dans d'autres distributions Linux modernes. Il s'agit d'un guide des opérations courantes de gestion des packages.

Avant de continuer, assurez-vous que vos bases de données de packages sont à jour avec :

sudo pacman -Sy

Recherche


Privilégiant la brièveté à l'intuitivité, la plupart des opérations de gestion de paquets dans Arch Linux se présentent sous la forme :

pacman -<a-z><a-z>.

Par exemple, la commande normale pour rechercher les référentiels pacman est

pacman -Ss <package> 

Comme la plupart des commandes pacman, ce n'est pas particulièrement évident. pacman est également livré avec un utilitaire pacsearch. Cela fonctionne de la même manière, mais il a quelques améliorations par rapport à pacman -Ss :

  • mise en évidence des couleurs
  • catégorie des packages installés ('local')

Voici comment répertorier tous les packages standard avec le mot-clé "linux".

pacsearch linux

Parfois, il y aura beaucoup de forfaits correspondant à vos critères de recherche. Cela est particulièrement vrai lorsque vous utilisez un assistant AUR comme yaourt. Les expressions régulières peuvent aider à réduire la liste. Par exemple, disons que vous essayez de trouver quoi que ce soit lié à l'outil "ack". Une recherche régulière de ack renverra inévitablement de nombreux résultats à parcourir, en raison de mots tels que "package", "hack" ou "playback".

pacsearch ack

Cependant, peu de mots commencent par ack. L'ajout d'un ^ au mot de recherche n'inclura que les résultats commençant par ces lettres. Cela fonctionne avec au moins pacsearch, pacman et yaourt.

pacsearch ^ack 

Pour garantir qu'une expression régulière fonctionne comme prévu, entourez-la de guillemets.

pacsearch 'c\+\+'

Si vous souhaitez obtenir une liste des packages installés correspondant à une recherche, dirigez les résultats vers "grep local". L'option "-A 1" indique à grep d'inclure une ligne après chaque correspondance (la description du paquet, dans ce cas).

pacsearch linux | grep local -A 1

Alternativement, vous pouvez utiliser pacman -Qs avec l'inconvénient de ne pas mettre en évidence les couleurs.

pacman -Qs linux

Si vous voulez une mise en surbrillance des couleurs avec pacman -Ss, vous pouvez décommenter Color de /etc/pacman.conf. Cependant, il met en évidence différentes choses que pacsearch, vous voudrez peut-être essayer les deux et voir celle que vous préférez.

sudo vi /etc/pacman.conf

...
# Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
...

Obtenir des informations


pacman-Qi affiche des informations de base sur un package installé.

pacman -Qi linux

Name           : linux
Version        : 3.8.4-1
Description    : The linux kernel and modules
Architecture   : x86_64
URL            : http://www.kernel.org/
Licenses       : GPL2
Groups         : base
Provides       : kernel26=3.8.4
Depends On     : coreutils  linux-firmware  kmod  mkinitcpio>=0.7
Optional Deps  : crda: to set the correct wireless channels of your country
Required By    : None
Optional For   : None
Conflicts With : kernel26
Replaces       : kernel26
Installed Size : 64728.00 KiB
Packager       : Tobias Powalowski <[email protected]>
Build Date     : Wed Mar 20 21:16:17 2013
Install Date   : Fri Mar 29 01:02:14 2013
Install Reason : Explicitly installed
Install Script : Yes
Validated By   : Unknown

Si pacman -Qi ne reçoit aucun argument, il renvoie tous les packages du système. Vous pouvez rechercher cette sortie pour obtenir des informations spécialisées sur les packages installés.

Par exemple, si vous vouliez obtenir chaque paquet et sa taille :

pacman -Qi | grep -e "Name" -e "Installed Size"

Name           : a52dec
Installed Size : 244.00 KiB
Name           : aalib
Installed Size : 768.00 KiB
...

Alors que pacman -Qi fournit des informations sur les packages installés, pacman -Si interroge la base de données pour obtenir les informations les plus récemment récupérées sur un package.

pacman -Si linux

Repository     : core
Name           : linux
Version        : 3.11.6-1
Description    : The Linux kernel and modules
Architecture   : x86_64
URL            : http://www.kernel.org/
Licenses       : GPL2
Groups         : base
Provides       : kernel26=3.11.6
Depends On     : coreutils  linux-firmware  kmod  mkinitcpio>=0.7
Optional Deps  : crda: to set the correct wireless channels of your country
Conflicts With : kernel26
Replaces       : kernel26
Download Size  : 47855.98 KiB
Installed Size : 64493.00 KiB
Packager       : Thomas Bächler <[email protected]>
Build Date     : Fri 18 Oct 2013 05:25:12 PM EDT
Validated By   : MD5 Sum  SHA256 Sum  Signature

pacman -Ql répertorie tous les fichiers associés à un package.

pacman -Ql vi

vi /usr/
vi /usr/bin/
vi /usr/bin/edit
vi /usr/bin/ex
vi /usr/bin/vedit
vi /usr/bin/vi
...

Le nom du package sur chaque ligne peut rendre la sortie plus difficile à utiliser dans un script. pacman -Qlq (c'est-à-dire "pacman query list, quiet") n'imprimera pas le nom du package.

pacman -Qlq vi

/usr/
/usr/bin/
/usr/bin/edit
/usr/bin/ex
/usr/bin/vedit
/usr/bin/vi
...

Vous pouvez utiliser pacman -Qlq | grep bin pour rechercher tous les fichiers de ce package qui se trouvent dans un dossier bin (et sont donc probablement des fichiers exécutables). Ceci est pratique lorsque la commande associée à un package est différente du nom du package.

pacman -Qql pacman | grep bin

/usr/bin/
/usr/bin/bacman
/usr/bin/checkupdates
/usr/bin/cleanupdelta
/usr/bin/makepkg
/usr/bin/paccache
/usr/bin/pacdiff
/usr/bin/paclist
/usr/bin/paclog-pkglist
/usr/bin/pacman
/usr/bin/pacman-db-upgrade
/usr/bin/pacman-key
/usr/bin/pacman-optimize
/usr/bin/pacscripts
/usr/bin/pacsearch
/usr/bin/pacsort
/usr/bin/pacsysclean
/usr/bin/pactree
/usr/bin/pkgdelta
/usr/bin/rankmirrors
/usr/bin/repo-add
/usr/bin/repo-elephant
/usr/bin/repo-remove
/usr/bin/testdb
/usr/bin/testpkg
/usr/bin/updpkgsums
/usr/bin/vercmp

Consommation de stockage


Le moyen le plus simple de voir quels packages occupent le plus d'espace sur votre système est pacsysclean qui est livré avec pacman.

pacsysclean

Si vous voulez quelque chose d'un peu plus compliqué, l'utilitaire pacgraph peut produire un nuage de mots de dépendance des plus gros packages au format SVG et PNG.

pacgraph se trouve dans le dépôt de la communauté.

sudo pacman -S pacgraph

pacgraph -c sortira sur la console comme pacsysclean. S'il y a beaucoup de paquets, la sortie de pacgraph peut devenir compliquée car elle est triée du plus grand au plus petit, contrairement à pacsysclean. Vous pouvez le diriger vers la tête pour voir uniquement les plus gros packages.

pacgraph -c | head

Autodetected Arch.
Loading package info
Total size: 730MB
114MB linux
103MB libtool
84MB pacgraph
40MB imagemagick
25784kB ppl
22264kB nmap
17295kB pkgfile

Dans le droplet Arch Linux que j'ai testé, certaines erreurs ont été produites avant cette sortie. Pour supprimer les erreurs, vous devrez corriger les paramètres régionaux à partir du "C" par défaut.

export LANG=en_US.UTF-8

Exécuté sans aucun argument, pacgraph produit un fichier SVG et, si possible, un fichier PNG. Si vous n'avez pas de système de partage de fichiers mis en place avec votre serveur virtuel, le moyen le plus simple d'accéder aux images générées par pacgraph est d'utiliser Secure Copy.

scp <user>@<addr>:<remote_path> <local_path>

Remarque : Bien que pacgraph prétende rendre un fichier PNG après l'installation d'imagemagick et de libpng, au moment d'écrire ces lignes, il ne générera pas réellement de PNG sans inkscape, qui a pas mal de dépendances.

Téléchargements / Installation


La manière typique d'installer ou de mettre à niveau un package standard est pacman -S.

sudo pacman -S <package>

Les packages ont souvent un modèle similaire dans leurs noms. Les crochets peuvent être utilisés comme raccourci.

sudo pacman -S lua-{sec,socket,zlib}

Parfois, vous voudrez peut-être simplement télécharger un package à des fins d'archivage sans l'installer. pacman -Sw téléchargera un package dans le dossier cache.

sudo pacman -Sw <package>

Si un package a été téléchargé, ou si vous connaissez l'url, vous pouvez l'installer directement.

sudo pacman -U <package_path>

Mises à niveau


Puisque pacman tourne autour de l'idée de "synchroniser" un paquet avec le référentiel distant, pacman -S mettra à jour un paquet s'il est déjà installé.

Pacman peut répertorier les packages obsolètes.

pacman -Qu

Malheureusement, il n'affiche pas la version du package dans le référentiel, vous ne pourrez donc pas savoir à quel point chaque package est obsolète. Si cela est important pour vous, vous voudrez peut-être consulter les gestionnaires de packages tiers ou écrire un script qui relie la version du package obtenue à partir de pacman -Qi et pacman -Si.

Vous pouvez obtenir la version de pacman -Qi ou pacman -Si en utilisant une expression régulière.

pacman -Qi linux | grep "Version" | sed 's/^Version\s*:\s//'

3.8.4-1

Et puis écrivez un script qui montre les versions côte à côte.

for i in $(pacman -Qqu)
do
  printf "$i: "
  printf "$(pacman -Qi "$i" | grep 'Version' | sed 's/^Version\s*:\s//') "
  echo   "$(pacman -Si "$i" | grep 'Version' | sed 's/^Version\s*:\s//')"
done

Pacman fournit un moyen de mettre à niveau tous vos packages en même temps, mais ce n'est pas recommandé car Arch est une distribution à diffusion continue. Si des problèmes surviennent, cela peut prendre du temps pour déterminer quelles en sont les causes.

sudo pacman -Syu

Rétrogradations


Arch Linux ne gère pas officiellement les packages obsolètes. Au lieu de cela, vous devrez vous fier à votre cache de paquets et à des endroits comme Arch Rollback Machine.

Cache


Chaque paquet téléchargé avec pacman est stocké dans /var/cache/pacman/pkg.

ls /var/cache/pacman/pkg | grep linux

linux-3.11.6-1-x86_64.pkg.tar.xz
linux-3.9.7-1-x86_64.pkg.tar.xz
...

Si vous souhaitez revenir à un package dans votre cache, installez-le directement.

pacman -U <path_to_cached_file>

Machine de restauration d'arc


The Arch Rollback Machine est une collection d'instantanés du miroir officiel d'Arch Linux. Au moment d'écrire ces lignes, cela remonte à quatre mois. L'ARM est actuellement hébergé sur http://seblu.net/a/arm, bien que cela puisse changer à l'avenir.

Les packages ARM peuvent être installés à distance à l'aide de pacman -U .

pacman -U http://seblu.net/a/arm/2013/08/31/extra/os/x86_64/apache-2.2.25-1-x86_64.pkg.tar.xz

Il n'est pas vraiment pratique de parcourir l'ARM pour les packages plus anciens. Heureusement, il existe des outils qui facilitent cela :

Ils recherchent les anciennes versions dans le cache et l'ARM. Leur utilisation est ce que vous attendez.

downgrade <package>
downgrader <package>

Les deux outils sont dans l'AUR, donc le moyen le plus simple de les installer sera avec un assistant comme yaourt.

Remarque : L'ARM est un projet non officiel et a été fermé par le passé. Il peut donc être judicieux d'éviter de vider votre cache au cas où l'ARM tombe en panne ou change à nouveau d'emplacement. Si vous souhaitez lancer votre propre ARM, il semble y avoir un projet NodeJS sur github.

Suppression


Supprimer un paquet, à condition que rien ne dépende de lui. Laissez ses dépendances installées.

sudo pacman -R <package>

Supprimer un paquet, à condition que rien ne dépende de lui. Supprimez ses dépendances qui ne sont requises par rien d'autre.

sudo pacman -Rs <package>

Forcer la suppression d'un paquet. C'est la commande que vous atteindrez pour simplement effacer le paquet de votre système et le réinstaller lorsque la réinstallation seule ne suffit pas.

sudo pacman -Rdd <package>

Forfaits non officiels


La grande majorité des packages Arch Linux se trouvent dans le Arch User Repository. La meilleure façon de rechercher et de télécharger des packages à partir de l'AUR est d'utiliser un outil d'assistance.

Il existe déjà un article de Digital Ocean sur l'AUR et l'outil yaourt.

Soumis par : [[“%3Ca|http://robertqualls.com]] [[“%3C/a|”>Robert Qualls]]