GNU/Linux >> Tutoriels Linux >  >> Linux

Comment interroger des fichiers, des packages et des référentiels sous Linux

Ayant une certaine expérience avec Linux, vous savez probablement que vous ne pouvez pas simplement partager une commande ou un utilitaire entre les systèmes. La raison pour laquelle vous ne pouvez pas simplement copier un exécutable d'un système à un autre est due aux dépendances, telles que les bibliothèques et autres packages de support. Certains utilitaires peuvent certainement être copié, mais ce n'est pas universellement le cas. Si vous avez oublié le package que vous avez installé et qui incluait le nslookup commande, par exemple, vous avez besoin d'un moyen de la trouver.

De plus, une fois que vous avez trouvé le package auquel appartient une commande, vous souhaiterez peut-être savoir à partir de quel référentiel vous avez installé le package. Les référentiels de base de AppStream , BaseOS , et Extras contiennent beaucoup, mais certainement pas tous des packages dont vous pourriez avoir besoin ou que vous pourriez rencontrer. Dans cet article, j'explore certaines méthodes d'interrogation du système pour trouver des référentiels, des packages et des commandes associés.

  • Les packages contiennent des commandes, des utilitaires et des bibliothèques
  • Les packages ont des dépendances
  • Les référentiels contiennent, stockent et fournissent des packages

Classer le type de fichier

L'utilitaire que vous utilisez est-il un script, du texte brut ou une commande ? Est-il compilé ? Quel est l'emplacement du fichier ? Vous voudrez peut-être quelques informations de base sur l'utilitaire. Le which La commande localise un fichier s'il se trouve dans votre chemin. Vous devrez localiser un fichier avant de pouvoir l'identifier davantage.

$ which mtr

/usr/sbin/mtr

Pour afficher les informations sur le type de fichier, le file commande est indispensable.

$ file mtr
mtr: cannot open `mtr' (No such file or directory)

$ file /usr/sbin/mtr
/usr/sbin/mtr: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d34479cefafe7299b65d8375769c63978c6c453f, stripped, too many notes (256)

La première tentative a échoué car le file la commande ne connaît pas l'emplacement du mtr commande. Une fois le chemin complet donné au file , les informations s'affichent.

Voici un exemple de fichier exécutable non compilé.

$ file /usr/sbin/ifcfg
/usr/sbin/ifcfg: POSIX shell script, ASCII text executable

Comme vous pouvez le voir, le file est une commande importante à connaître et que vous utiliserez certainement tout au long de votre carrière.

[ Les lecteurs ont également aimé :la gestion des packages Linux avec YUM et RPM ]

Trouver le colis

Le nslookup La commande est celle que vous utilisez fréquemment mais elle n'est installée sur aucun des systèmes de votre nouveau travail. Vous voulez l'installer mais vous ne vous souvenez plus quel paquet le contient et essayez de l'installer en tant que nslookup échoue.

# dnf -y install nslookup
Last metadata expiration check: 2:44:51 ago on Tue 10 Nov 2020 03:27:27 PM CST.
No match for argument: nslookup
Error: Unable to find a match: nslookup

Pour trouver le package qui contient nslookup , vous pouvez effectuer une recherche "inversée" en utilisant le rpm commande.

# rpm -qf nslookup
error: file /root/nslookup: No such file or directory

Qu'est-ce qui ne va pas ici ? Le rpm la commande ne trouve pas nslookup mais il est installé parce que vous l'avez utilisé. Attendre. Regardez le chemin :/root/nslookup . Il n'y a pas de nslookup commande dans votre répertoire actuel (racine d'accueil). Localisez nslookup en utilisant le which commande puis émettez le rpm commande.

# which nslookup
/usr/bin/nslookup

# rpm -qf /usr/bin/nslookup
bind-utils-9.11.13-6.el8_2.1.x86_64

Vous voyez que nslookup fait partie des bind-utils emballer. Vous pouvez maintenant le copier sur vos autres systèmes et l'utiliser comme vous le feriez normalement.

 # nslookup google.com
/opt/nslookup: error while loading shared libraries: libdns.so.1107: cannot open shared object file: No such file or directory

L'erreur vous indique que le nslookup La commande a des dépendances qui n'ont pas été satisfaites sur le nouveau système sur lequel vous l'avez copiée. La solution consiste à l'installer individuellement sur chaque système à l'aide de DNF/YUM.

Révéler les dépendances des packages

Vous aimez vraiment le nslookup commande, et vous aimeriez qu'elle soit disponible sur tous vos systèmes. Vous réalisez après une tentative infructueuse que vous ne pouvez pas simplement le copier sur un autre système et vous attendre à ce qu'il fonctionne. Après de nombreuses recherches, vous découvrez que le nslookup La commande a plusieurs dépendances qui doivent être respectées. Quelles sont ces dépendances ?

# dnf deplist nslookup
Last metadata expiration check: 3:00:24 ago on Tue 10 Nov 2020 03:27:27 PM CST.

Cela signifie-t-il qu'il n'y a pas de dépendances pour nslookup ? Non. Cela signifie que vous avez tenté de trouver des dépendances pour une commande plutôt que pour un package.

# dnf deplist bind-utils

Last metadata expiration check: 0:00:14 ago on Tue 10 Nov 2020 06:29:37 PM CST.
package: bind-utils-32:9.11.13-6.el8_2.1.x86_64
  dependency: /usr/libexec/platform-python
   provider: platform-python-3.6.8-23.el8.i686
   provider: platform-python-3.6.8-23.el8.x86_64
  dependency: bind-libs(x86-64) = 32:9.11.13-6.el8_2.1
   provider: bind-libs-32:9.11.13-6.el8_2.1.x86_64
 *** longer list of dependencies ***
  dependency: rtld(GNU_HASH)
   provider: glibc-2.28-101.el8.i686
   provider: glibc-2.28-101.el8.x86_64

N'oubliez pas que les packages ont des dépendances. La liste des dépendances peut être utile si vous souhaitez les satisfaire manuellement ou si vous pensez que de nouvelles dépendances pourraient interférer ou être incompatibles avec les packages et les dépendances déjà installés sur votre système.

Identifier le dépôt

Vous avez vu un autre administrateur système utiliser l'outil d'informations sur le matériel (hwinfo ) commande sur son système. Vous essayez la commande sur votre système mais vous recevez une erreur "commande introuvable". Vous tentez alors de l'installer.

# dnf -y install hwinfo

Last metadata expiration check: 0:09:34 ago on Tue 10 Nov 2020 06:42:15 PM CST.
No match for argument: hwinfo
Error: Unable to find a match: hwinfo

Vous demandez à votre collègue de vous dire où elle a obtenu le hwinfo emballer. Elle effectue la requête suivante pour trouver sa source.

# dnf list hwinfo

Last metadata expiration check: 0:11:17 ago on Tue 10 Nov 2020 06:42:15 PM CST.
Installed Packages
hwinfo.x86_64                         21.47-9.el8                             @epel

Vous notez que la source semble être un dépôt identifié comme epel . Vous lui demandez en outre de vous dire comment configurer le epel dépôt. Elle se souvient que epel est en fait un package RPM installable mais ne se souvient pas de son nom complet. Elle effectue la requête suivante pour l'identifier.

# rpm -qa |grep epel
epel-release-8-8.el8.noarch

Vous pouvez maintenant installer le epel-release package puis installez le hwinfo paquet.

Remarque :Le epel-release repository est la configuration du référentiel Extra Packages for Enterprise Linux et c'est la première chose que j'installe sur tout nouveau système que je rencontre et qui ne l'a pas.

[ Téléchargement gratuit :Aide-mémoire sur les commandes avancées de Linux. ]

Conclusion

Linux fournit à ses administrateurs de nombreux utilitaires et commandes pratiques pour trouver des informations sur le système et ses composants. Vous devez ajouter ces commandes et utilitaires à votre boîte à outils sysadmin. Comme vous pouvez le voir dans cet article, vous n'avez pas besoin de connaître toutes les options obscures d'une commande pour obtenir ce dont vous avez besoin. Utilisez man pages pour ceux-là.


Linux
  1. Qu'est-ce qu'une commande Chown sous Linux et comment l'utiliser

  2. Comment supprimer des fichiers et des répertoires sous Linux à partir de la ligne de commande

  3. Comment archiver et compresser des fichiers sous Linux

  4. Comment compresser et extraire des fichiers à l'aide de la commande tar sous Linux ?

  5. Comment copier des fichiers sous Linux et Unix ? 10 exemples de commandes cp

Comment renommer des fichiers et des répertoires sous Linux

Comment compresser des fichiers et des répertoires sous Linux

Comment déplacer des fichiers et des répertoires sous Linux (commande mv)

Comment trier des fichiers sous Linux (GUI et Shell)

Comment installer et utiliser la commande fd sous Linux

Comment compter les fichiers dans le répertoire sous Linux