Apt-file pour explorer les packages Debian
Sommaire
I. Présentation d'apt-file
Lorsque l'on utilise exclusivement la ligne de commande sur des serveurs Linux, il y a des outils qu'il faut avoir dans la poche, c'est le cas d'apt-file qui permet d'explorer des packages Debian (.deb) et de retrouver un package en fonction d'un fichier. Nous allons ici apprendre à l'utiliser.
II. Installation et préparation d'apt-file
Apt-file s'installe tout simplement sous Debian via les dépôts, on saisira la commande suivante :
apt-get install apt-file
Il faudra ensuite préparer apt-file à être utilisé en remplissant son cache, il faut pour cela simplement saisir la ligne de commande suivante :
apt-file update
Voici ce que l'on pourra voir apparaître :
Dès lors, apt-file va aller lire le fichier /etc/apt/sources.list et remplir son cache (une vingtaine de mégaoctets pour une Debian basique) pour être prêt à être utilisé. C'est bien sûr une commande qu'il faudra réutiliser lorsque l'on mettra à jour le fichier /etc/apt/sources.list
Nous pouvons maintenant utiliser apt-file et voir ce dont il est capable !
III. Lister les fichiers d'un package Debian
La première chose plutôt pratique que nous pouvons faire avec apt-file est de lister les fichiers qui sont contenus dans un paquet Debian (.deb). Nous avons déjà vu sur IT-Connect comment construire un package Debian, nous savons donc que ceux-ci sont juste un ensemble de fichiers (conf, script, stockage d'information) mis dans un paquet et prêt à être déployés. Avec Apt-file, on va pouvoir afficher les fichiers qui seront déployés lors de l'installation avec apt-get install avant cette dite installation. Plus simplement, on peut effectuer la commande suivante pour voir les fichiers qui sont contenus dans le package Debian de fail2ban
apt-file show fail2ban
Voici le résultat que nous aurons dans le terminal :
On voit donc que différents fichiers vont être mis dans /etc/default, mais aussi dans /etc/fail2ban/, etc..
IV. Retrouver le package d'un fichier
Une deuxième action assez intéressante peut être exécutée avec apt-file. On peut en effet retrouver, à partir d'un fichier pointé, le paquet Debian associé à celui-ci. Si l'on souhaite par exemple sur un autre serveur savoir quel paquet installer pour avoir une commande précise, il nous suffit d'aller sur un serveur possédant cette commande et de saisir la commande suivante (Exemple avec la commande "htpasswd" fourni avec apache2) :
apt-file search /usr/bin/htpasswd
Voici le résultat que l'on pourra avoir (il peut varier selon le contenu de votre fichier /etc/apt/sources.list) :
On voit donc que la commande et l'outil "htpasswd" sont fournis avec les paquets apache2-dbg mais aussi apache2-utils.
Une petite astuce, lorsque vous cherchez le paquet correspondant à une commande ou un fichier, je vous conseille de mettre le chemin absolu à celui-ci, cela permet d'exclure quelques résultats et lignes inutiles dans le résultat. Le chemin absolu vers une commande peut être trouvé avec l'option "whereis", par exemple pour la commande "htpasswd" :
whereis htpasswdVoici le résultat que nous pourrons voir :
V. Options supplémentaires
Lors de l'utilisation d'apt-file, plusieurs options peuvent être utilisées pour étendre les possibilités de l’outil. On peut par exemple spécifier un fichier sources.list (contenant une liste de dépôts Debian) autre que le fichier /etc/sources.list. Cela peut par exemple permettre de faire une comparaison rapidement entre des paquets fournis de différents dépôts ou entre deux fichiers sources.list. On va pour cela utiliser l'option "-s" ou "--sources-list" :
apt-file show apache2 --sources-list /opt/sources.list.test
On peut également spécifier une architecture précise grâce à l'option "-a" ou "--architecture" :
apt-search /usr/bin/owncloud -a amd64
Apt-file peut être très utile dans certains contextes et c'est un outil qu'il est bon de connaitre !
Bonjour l’équipe iT-Connect.
Si l’envie vous vient il y a la possibilité d’utiliser la commande « dpkg ».
Avec « dpkg -L fail2ban », nous aurons la liste des fichiers du paquets. Attention, cette liste est donnée par le mainteneur du paquet, et donc il se peut qu’il y ai des erreurs !
Idem pour retrouver un paquet source depuis un fichier avec l’option
« dpkg -S /etc/fail2ban/fail2ban.conf »
Bref, si nous n’avons pas internet pour installer apt-file, il y a déjà tout ce qu’il faut avec dpkg 🙂
Enjoy !
Bonjour Aguay,
Merci pour ces infos ! 😉