Souvent, lorsque nous travaillons sur Linux, nous rencontrons une erreur assez courante concernant la source. Cette erreur est source :commande introuvable, et aujourd'hui nous allons vous expliquer tout ce que vous devez savoir à ce sujet.
Dans cet article, vous apprendrez quelle est la source, pourquoi cette erreur se produit et bien sûr, vous apprendrez également comment la résoudre, donc si vous obtenez le commando source d'erreur introuvable sur votre système Linux, continuez à lire.
Tout d'abord, quelle est la commande source exactement ? Il est important de préciser que la source n'est pas un progiciel Linux réel , ce n'est pas un programme approprié comme, par exemple, du, egrep, find, etc. Source est une commande intégrée , il fait partie du package logiciel bash .
Pour comprendre ce qu'il fait, nous devons d'abord savoir quelles sont les variables shell et les variables d'environnement sous Linux. Chaque fois que nous ouvrons une nouvelle session SSH sur un système Linux, le shell charge automatiquement certaines variables par défaut. Ces variables conviennent à la plupart des tâches, mais pour d'autres, nous devrons peut-être apporter des modifications, et c'est là que la commande source entre en scène.
Si nous voulons modifier certaines variables pour, par exemple, exécuter un script, la meilleure façon de le faire est d'utiliser source. La plupart du temps, lorsque nous exécutons un script sous Linux, il s'exécute dans un sous-shell et ne s'exécute donc pas dans le même environnement que notre session shell actuelle. Eh bien, la source résoudra ce problème si nous devons utiliser des variables personnalisées.
Tout d'abord, nous devrons définir une variable dans notre environnement shell actuel. Une fois cela fait, nous pouvons utiliser source pour modifier l'environnement du script que nous exécutons et en faire notre environnement actuel, ce qui rendra la nouvelle variable disponible pour le script que nous exécutons.
Cela peut être très utile dans certaines situations, nous pouvons faire encore plus avec la source, bien que ce ne soit pas le but de cet article. Donc, si nous faisons quelque chose de mal lors de l'utilisation de la source, nous pouvons obtenir des erreurs, et l'une d'entre elles sera la commande Source introuvable, bien sûr, alors voyons ce qui cause cette erreur.
Causes de la commande Source introuvable
Nous obtiendrons généralement cette erreur sous la forme « source :commande introuvable » ou, si nous utilisons sudo, sous la forme « sudo :source :commande introuvable », dans les deux cas, le problème est que la session shell attend que nous exécutions un programme. , mais rappelez-vous que la source n'est pas un programme , nous exécutons en fait un bash intégré comme expliqué précédemment.
Puisque le terminal pense que nous essayons d'exécuter un programme appelé "source", il lancera l'erreur introuvable.
Cette erreur se produit également si nous essayons d'exécuter un programme qui n'est pas installé sur notre système, par exemple, si nous essayons d'exécuter quelque chose qui n'existe pas, comme "quelque chose", nous obtenons la même erreur :
[[email protected] ~]$ somethingsomething bash: somethingsomething: command not found
Alors, comment pouvons-nous résoudre ce problème alors? C'est ce que nous allons expliquer maintenant.
Comment puis-je corriger l'erreur de commande source introuvable sous Linux ?
La meilleure et la plus simple façon de résoudre ce problème est d'exécuter la commande en utilisant root à la place , nous devrons donc démarrer une session root en utilisant su ou sudo -s . Si vous obtenez une erreur d'authentification ou une erreur d'autorisations, cela signifie que vous ne pouvez pas vous connecter en tant que root avec votre utilisateur actuel, veuillez demander à la personne responsable de modifier les privilèges afin que vous puissiez vous connecter temporairement en tant que root pour résoudre le problème.
Une fois que vous êtes connecté en tant que root, essayez d'exécuter la commande qui a renvoyé l'erreur source auparavant :elle devrait fonctionner correctement cette fois.
Une autre façon de résoudre ce problème consiste à forcer l'utilisation de bash . Dans certaines distributions Linux, la source intégrée n'est pas disponible par défaut car la commande sh n'appelle pas bash, mais d'autres programmes comme "dash" par exemple. Donc, dans ce cas, nous pouvons éditer le script que nous essayons d'exécuter et changer le /bin/sh en haut en /bin/bash, comme ceci :
#!/bin/bash
Une troisième solution, bien que cela ne fonctionne pas toujours, consiste à utiliser un point au lieu de source . Oui, cela fonctionne de la même manière, donc si nous exécutons un script comme celui-ci :
source ./myshinyscript
Nous devrons remplacer source par un point. Oui, un point :
. ./myshinyscript
Il est très important d'avoir un espace entre les deux points, comme dans l'exemple.
Conclusion
C'était donc assez simple comme vous l'avez vu. Le vrai problème avec l'erreur de commande source introuvable est de comprendre pourquoi cela se produit, et maintenant vous savez que cela se produit parce que la session shell confond la source avec un programme alors qu'il s'agit en fait d'un Bash intégré.
Une fois que nous avons compris cela, résoudre le problème est facile, en fait, nous vous avons donné trois solutions que vous pouvez essayer, qui exécutent le script en tant que root, modifient le script pour le forcer à exécuter bash, ou utilisent un point au lieu de source dans la ligne de commande.
La commande source introuvable a été modifiée pour la dernière fois :le 9 avril 2020 par Esteban Borges