GNU/Linux >> Tutoriels Linux >  >> Linux

Comment lister le contenu d'un paquet sous Linux

Nous savions déjà comment lister les packages installés et aussi comment lister les dépendances d'un paquet sous Linux. Aujourd'hui, nous allons voir comment lister le contenu d'un paquet sous Linux. Peu importe que le paquet soit installé ou non. Il est possible de lire le contenu d'un package installé ou non installé.

Sous Linux et Unix, la plupart des programmes ne se retrouvent généralement pas dans un seul répertoire. Lorsque vous installez un package, tous les fichiers de ce package sont dispersés dans le système de fichiers et enregistrés dans des chemins différents. Habituellement, les fichiers exécutables (par exemple les binaires/scripts) sont stockés dans les répertoires '/bin' ou '/usr/bin' ou '/usr/local/bin', les fichiers de bibliothèque dans '/usr/lib', les fichiers de configuration dans '/etc', données statiques dans '/usr/share', etc. Trouvons maintenant la liste des fichiers dans un paquet et où sont-ils réellement stockés sous Linux.

Répertorier le contenu d'un paquet sous Linux

Tout d'abord, nous verrons comment lire le contenu d'un paquet dans les systèmes basés sur DEB, par exemple Ubuntu.

Répertorier le contenu d'un paquet installé dans Ubuntu

J'ai déjà installé Microsoft Teams package sur mon bureau Ubuntu 20.04.

Pour afficher le contenu du package Microsoft Teams, exécutez simplement :

$ dpkg -L teams

Exemple de résultat :

/.
/usr
/usr/bin
/usr/bin/teams
/usr/share
/usr/share/applications
/usr/share/applications/teams.desktop
/usr/share/pixmaps
/usr/share/pixmaps/teams.png
/usr/share/teams
.
.
.

/usr/share/teams/swiftshader/libEGL.so
/usr/share/teams/swiftshader/libGLESv2.so
/usr/share/teams/teams
/usr/share/teams/v8_context_snapshot.bin

Voir? La sortie ci-dessus montre les fichiers installés par le package Teams et leur emplacement dans mon système Ubuntu.

Voici une autre façon d'afficher le contenu d'un paquet installé dans Ubuntu :

$ dpkg-query -L teams

Répertorier le contenu d'un paquet non installé dans Ubuntu

Comme je l'ai déjà dit, les commandes ci-dessus affichent le contenu d'un package installé. Que faire si le package n'est pas installé et que vous souhaitez lire son contenu ? C'est possible aussi ! Vous pouvez trouver quels fichiers seront installés par un paquet avant même de l'installer.

Téléchargez d'abord le fichier .deb. J'ai déjà téléchargé le fichier .deb de l'application Teams. Accédez à l'emplacement où vous avez téléchargé le fichier .deb et exécutez la commande suivante pour afficher son contenu :

$ dpkg --contents teams_1.2.00.32451_amd64.deb

Ou,

$ dpkg -c teams_1.2.00.32451_amd64.deb

Exemple de résultat :

drwxr-xr-x root/root         0 2019-11-20 20:55 ./
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/bin/
-rwxr-xr-x root/root       286 2019-11-20 20:54 ./usr/bin/teams
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/share/
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/share/applications/
-rw-r--r-- root/root       352 2019-11-20 20:54 ./usr/share/applications/teams.desktop
.
.
.
-rwxr-xr-x root/root    286264 2019-11-20 20:54 ./usr/share/teams/swiftshader/libEGL.so
-rwxr-xr-x root/root   2677296 2019-11-20 20:54 ./usr/share/teams/swiftshader/libGLESv2.so
-rwxr-xr-x root/root 114944384 2019-11-20 20:54 ./usr/share/teams/teams
-rw-r--r-- root/root   1040824 2019-11-20 20:54 ./usr/share/teams/v8_context_snapshot.bin

Alternativement, vous pouvez le faire en utilisant apt-file outil également.

Installez le fichier apt comme indiqué ci-dessous s'il n'est pas déjà installé :

$ sudo apt install apt-file

Si vous venez d'installer apt-file, le cache à l'échelle du système peut être vide. Vous devez exécuter "apt-file update" en tant que root pour mettre à jour le cache. Vous pouvez également exécuter "apt-file update" en tant qu'utilisateur normal pour utiliser un cache dans le répertoire personnel de l'utilisateur.

Mettons à jour le cache de la base de données à l'aide de la commande :

$ sudo apt-file update

Maintenant, listez le contenu d'un paquet installé, par exemple vim, comme ci-dessous :

$ apt-file list vim

Exemple de résultat :

vim: /usr/bin/vim.basic 
vim: /usr/share/bug/vim/presubj
vim: /usr/share/bug/vim/script
vim: /usr/share/doc/vim/NEWS.Debian.gz
vim: /usr/share/doc/vim/changelog.Debian.gz
vim: /usr/share/doc/vim/copyright
vim: /usr/share/lintian/overrides/vim

L'outil apt-file est également utilisé pour rechercher les packages qui fournissent un fichier spécifique. Par exemple, recherchez le package qui fournit alisp.h fichier avec la commande :

$ apt-file find alisp.h

Ou,

$ apt-file search alisp.h

Exemple de résultat :

libasound2-dev: /usr/include/alsa/alisp.h

Comme vous pouvez le voir, le package "libasound2-dev" fournit le fichier alisp.h.

Pour plus de détails, consultez le lien suivant.

  • Comment trouver le package qui fournit un fichier spécifique sous Linux

Voici quelques façons d'afficher le contenu d'un package dans les systèmes basés sur DEB. Voyons maintenant comment répertorier le contenu du package dans les systèmes basés sur RPM, par exemple CentOS.

Répertorier le contenu d'un package installé/non installé dans CentOS

Dans les systèmes basés sur RPM comme CentOS, nous pouvons trouver le contenu d'un paquet en utilisant "repoquery" commande.

Le package "yum-utils" fournit la commande repoquery, alors installons-le à l'aide de la commande :

$ sudo yum install yum-utils

Découvrons maintenant le contenu du package de l'éditeur "nano" à l'aide de la commande :

# repoquery --installed --list nano

Ou,

# repoquery --list nano

Ou,

# repoquery -l nano

Exemple de résultat :

Last metadata expiration check: 0:03:02 ago on Tuesday 16 June 2020 06:01:46 PM IST.
/etc/nanorc
/usr/bin/nano
/usr/bin/rnano
/usr/lib/.build-id
/usr/lib/.build-id/d3
.
.
.
/usr/share/nano/tcl.nanorc
/usr/share/nano/tex.nanorc
/usr/share/nano/texinfo.nanorc
/usr/share/nano/xml.nanorc

De la même manière, vous pouvez répertorier le contenu d'un fichier non installé. Accédez à l'emplacement où vous avez téléchargé le fichier rpm et affichez son contenu comme ci-dessous :

# repoquery --list nano-2.9.8-1.el8.x86_64.rpm

Lire connexe :

  • Comment télécharger un package RPM avec toutes les dépendances dans CentOS

J'espère que cela vous aidera.


Linux
  1. Comment lister tous les fichiers installés par le paquet DEB sur Ubuntu/Debian Linux

  2. Comment répertorier les packages installés à partir d'un certain référentiel sous Linux

  3. Comment lister les dépendances d'un paquet sous Linux

  4. Comment lister tous les packages installés sous Linux

  5. Comment lister tous les packages installés dans Fedora avec l'heure de l'installation

Comment trouver la liste des référentiels installés à partir de la ligne de commande sous Linux

Comment afficher le contenu d'une archive ou d'un fichier compressé sous Linux

Comment trouver la liste des référentiels installés sous Linux

Comment trouver toutes les polices installées sous Linux

Comment utiliser le gestionnaire de paquets Yum sur Rocky Linux 8

Comment répertorier les packages installés sous Linux à l'aide de la gestion des packages