Debian

Recherche de paquets Debian

Recherche de paquets Debian

Debian 9, nom de code 'Stretch', possède un énorme référentiel de plus de 68 000 packages. Qu'il s'agisse de jeux, de polices, d'éditeurs, de bases de données ou d'outils de développement, il y a de fortes chances que vous y trouviez. La clé, cependant, est de trouve il. À moins que vous ne connaissiez le nom exact du package, trouver un package particulier dans un référentiel aussi volumineux revient à chercher une aiguille dans une botte de foin. Parfois, le nom du package est différent du nom du programme. Par exemple, iostat, un programme utile pour rapporter les statistiques d'E/S CPU et disque, est conditionné sous le nom sysstat. D'autres fois, vous ne connaissez ni le nom du package ni le nom de la commande. Au lieu de cela, vous ne connaissez que sa fonction, ce qu'il est censé faire.

Pour rechercher des packages, plusieurs méthodes existent avec des niveaux de puissance et de convivialité variables. Le site Web Debian a une liste de tous les paquets Debian. Vous pouvez donc utiliser la fonction de recherche de votre navigateur ou télécharger la liste sous forme de fichier texte compressé et utiliser grep. Dans tous les cas, beaucoup de travail manuel est nécessaire pour filtrer la liste. La bonne nouvelle est que de puissants outils automatisés sont disponibles pour accélérer le filtrage.

Debian fournit à la fois des gestionnaires de paquets graphiques et en ligne de commande pour rechercher et filtrer les paquets. Les outils basés sur l'interface graphique, tels que Synaptic, excellent généralement en termes de convivialité. Cependant, toutes les machines, en particulier les serveurs de production, n'ont pas le bureau graphique installé. Pour ces machines, Synaptic n'est tout simplement pas une option. Dans cet article, nous nous concentrons sur les outils en ligne de commande pour rechercher des packages Debian.


Informations d'arrière-plan

Les administrateurs système Debian définissent les sources des paquets dans le fichier /etc/apt/sources.liste. Entre autres choses, le fichier spécifie que seuls les paquets d'une version particulière de Debian (e.g., Stretch vs Buster), et de certaines catégories de composants (e.g., main, contrib et non-free) peuvent être téléchargés. Les métadonnées de tous les packages éligibles sont téléchargées dans le cache local des packages, via la commande apt-get update.

Les mainteneurs de packages en amont peuvent ajouter et supprimer des packages à tout moment. Pour vous assurer que votre cache de package local contient les dernières informations sur les métadonnées, vous devez mettre à jour le cache ("apt-get update") avant de faire une recherche.

Maintenant que vous êtes prêt à rechercher, vous pouvez le faire en tant qu'utilisateur régulier. Il n'est pas nécessaire de devenir root pour exécuter une recherche. C'est parce qu'une recherche effectue simplement des requêtes, pas des modifications, dans le cache du package. De plus, la machine n'a même pas besoin d'être en ligne car les commandes de recherche n'accèdent qu'au cache local, pas aux référentiels distants.

La portée d'une recherche est limitée à ce qui est spécifié dans les sources.fichier de liste. Par exemple, si le fichier n'autorise que les packages de composants main et contrib, vos recherches ne renverront pas de packages non libres.

Résumer:

  1. Avant d'exécuter une recherche, exécutez 'apt-get update' pour actualiser le cache du package.
  2. Vous pouvez exécuter une commande de recherche en tant qu'utilisateur normal (aucun privilège root requis).
  3. Aucune connexion Internet n'est requise pour exécuter une commande de recherche.
  4. Les résultats de la recherche sont limités au périmètre défini par les sources.fichier de liste.

apt-cache

Si vous connaissez le nom du package, même partiellement, vous pouvez passer le nom partiel en tant qu'argument d'expression régulière à apt-cache. Par exemple, vous savez que le nom du package est une variante du thème dos à unix, tel que dostounix, dos2unix, dos-to-unix, etc. La commande de recherche et sa sortie sont les suivantes :

$ recherche apt-cache --names-only dos.+unix
dos2unix - convertit les fins de ligne de fichier texte entre CRLF et LF

Remarques:

  1. -names-only (ou -n en abrégé) spécifie que seuls les noms de packages, pas les descriptions, sont mis en correspondance. (La valeur par défaut est à la fois le nom et la description.)
  2. dos.+unix est une expression régulière qui correspond au nom du package dos2unix. Veuillez vous référer à regex(7) pour obtenir de l'aide sur la syntaxe.

Que faites-vous si vous savez seulement ce que fait le paquet, je.e., sa fonction, mais pas son nom? Dans ce cas, vous recherchez un programme pour convertir des fichiers texte du format DOS en UNIX. La commande de recherche à utiliser et sa sortie sont les suivantes :

$  apt-cache recherche convertir dos unix
dos2unix - convertir les fins de ligne de fichier texte entre CRLF et LF
flip - convertit les fins de ligne de fichier texte entre les formats Unix et DOS
fondu - convertir entre les formats de police Mac et UNIX
tofrodos - Convertit DOS <-> Fichiers texte Unix, alias tofromdos

Par défaut, apt-cache essaie de faire correspondre les mots-clés de recherche à la fois au nom du package et à la description longue du package. L'espoir ici est que les mots-clés fonctionnels correspondent aux mots que le mainteneur du paquet utilise dans sa longue description. Notez que plusieurs mots-clés (convert, dos, unix) sont combinés AND.

apte

La commande apt est un outil de gestion de paquets plus récent qui fusionne les fonctionnalités de base d'apt-get et d'apt-cache. Il est conçu pour être utilisé de manière interactive, plutôt que dans un script. Par exemple, la sortie apt est colorisée pour améliorer la lisibilité. Mis à part l'esthétique, les commandes apt et apt-cache partagent une syntaxe similaire, y compris les options de commande.

L'exemple ci-dessous recherche un package en faisant correspondre l'expression régulière dos.+unix, contre les noms de paquet uniquement (par défaut, contre le nom et la description).

$  apt search --names-only dos.+unix
Tri… terminé
Recherche plein texte… terminée
dos2unix/stable, maintenant 7.3.4-3 amd64 [installé]
convertir les fins de ligne de fichier texte entre CRLF et LF

apt-fichier

Bien qu'apt-cache (et apt) puisse vous aider à rechercher un package en faisant correspondre des mots-clés fonctionnels, la recherche est souvent aléatoire. Le succès dépend trop de la façon dont le mainteneur du paquet écrit la description longue du paquet. En réalité, cependant, vous pouvez connaître des informations supplémentaires sur le package, telles que le nom de la commande ou un fichier inclus dans le package. L'outil à utiliser alors est apt-file.

La commande apt-file n'est pas installée par défaut sur un système Debian. Pour installer, exécutez en tant que root :

$ apt-get install apt-file

Avant d'exécuter apt-file pour la première fois, mettez à jour le cache de package en mettant à jour le cache de package local ('apt-get update').

Supposons que vous vouliez trouver le package qui contient la commande iostat. La commande à utiliser et la sortie abrégée sont les suivantes :

$ apt-file recherche iostat
…   <12 lines snipped>…
linux-manuel-4.9 : /usr/share/man/man9/rpc_count_iostats_metrics.9.gz
linux-manuel-4.9 : /usr/share/man/man9/rpc_free_iostats.9.gz
pages de manuel-fr-extra: /usr/share/man/fr/man8/nfsiostat.8.gz
munin-plugins-extra: /usr/share/munin/plugins/iostat
munin-plugins-extra: /usr/share/munin/plugins/iostat_ios
nagios-plugin-check-multi : /usr/share/doc/nagios-plugin-check-multi/examples/nagiostats.cmd
nfs-commun : /usr/sbin/nfsiostat
nfs-commun : /usr/share/man/man8/nfsiostat.8.gz
nixstatsagent : /usr/lib/python2.7/dist-packages/nixstatsagent/plugins/iostat.py
sysstat : /usr/bin/cifsiostat
sysstat : /usr/bin/iostat
sysstat : /usr/share/man/man1/cifsiostat.1.gz
sysstat : /usr/share/man/man1/iostat.1.gz
zsh-common : /usr/share/zsh/functions/Completion/Unix/_iostat

apt-file fonctionne en faisant correspondre l'argument iostat en tant que sous-chaîne aux chemins d'accès de tous les fichiers d'un package. La recherche ci-dessus renvoie 46 résultats, je.e., un total de 46 fichiers dans le cache local contiennent iostat dans leurs noms de chemin, ce qui est beaucoup à examiner manuellement.

Pour affiner la recherche, transformez l'argument en une expression régulière en utilisant l'indicateur -x.

$  apt-file -x  search   '/iostat$'
munin-plugins-extra: /usr/share/munin/plugins/iostat
sysstat : /usr/bin/iostat

L'expression régulière, /iostat$, ne correspond qu'aux chemins qui se terminent exactement par iostat. Pour la syntaxe des expressions régulières, veuillez vous référer à perlreref(1).

La nouvelle sortie n'a que 2 hits, et vous pouvez lire rapidement le nom du package (sysstat) qui contient la commande iostat.


Conclusion

Les distributions Linux en général et Debian, en particulier, sont connues pour leurs énormes dépôts de paquets officiels. Mais, trouver celui que vous voulez parmi des dizaines de milliers de packages peut être tout un défi. Soyez assuré que vous n'avez pas besoin de connaître le nom exact du package. Les commandes apt-cache et apt peuvent filtrer les packages en fonction de mots-clés dans la description du package. Alternativement, si vous connaissez le nom du fichier binaire du programme, la commande apt-file peut l'utiliser pour identifier les packages qui contiennent un fichier du même nom.

Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...
Installez le dernier jeu de stratégie OpenRA sur Ubuntu Linux
OpenRA est un moteur de jeu de stratégie en temps réel libre/gratuit qui recrée les premiers jeux Westwood comme le classique Command & Conquer: Red A...
Installez le dernier émulateur Dolphin pour Gamecube et Wii sur Linux
L'émulateur Dolphin vous permet de jouer aux jeux Gamecube et Wii de votre choix sur des ordinateurs personnels Linux (PC). Étant un émulateur de jeu...