21 votes

Le terminal ne retourne pas la plupart des commandes Mac OSX

Je suis vraiment novice en matière de Mac OSX et de systèmes basés sur UNIX. Je voulais faire tourner quelques jeux Windows sur mon Mac Mini alors j'ai commencé à installer Wine et MacPorts.

Je pense que les installations sont correctes, mais quand je tape sudo port install wine Je vois une erreur non trouvée dans mon terminal. J'ai essayé d'autres commandes de base comme say y clear et tous renvoient la même erreur non trouvée.

Mes recherches montrent que mon PATH est peut-être mal défini, mais il manque des étapes que je peux mettre en œuvre.

Plus précisément, j'ai lancé cette commande : echo $PATH et il est revenu :

/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin

Je suis complètement novice sur Mac et je n'ai aucune idée de l'endroit où se trouve le fichier .bash_profile ou l'un de ces fichiers. Mes compétences me permettent d'installer Xcode et les outils de ligne de commande pour Xcode et je sens que je dois me mettre à niveau sur la gestion des chemins.

À ce stade, j'ai besoin d'aide pour gérer mes fichiers point et modifier mon chemin d'accès afin de corriger ces erreurs spécifiques sur Mountain Lion.

Quelles sont mes prochaines étapes ?

17voto

Fuzzy Purple Monkey Points 702

$PATH doit contenir ces dossiers : /usr/bin:/usr/sbin:/bin:/sbin .

Essayez d'éditer ~/.bash_profile , ~/.profile ou ~/.bash_login (avec par exemple /usr/bin/open ~/.bash_profile -a TextEdit ) et en commentant toutes les lignes qui modifient le chemin.

Si cela fonctionne, vous pouvez ajouter une ligne telle que export PATH=/opt/local/bin:/opt/local/sbin:$PATH à ~/.bash_profile .

2 votes

Remarque : à partir de MacOS Catalina (10.15), l'interpréteur de commandes par défaut est zsh au lieu de bash. ~/.zprofile (ou peut-être ~/.zshenv o ~/.zshrc ) à la place des fichiers bash.

8voto

waheed Points 378

Le même problème m'arrivait, alors j'ai fait ce qui suit :

1) taper l'exportation PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" dans le terminal afin de le faire fonctionner temporairement.

2) Editer bash_profile en tapant /usr/bin/open ~/.bash_profile -a TextEdit

3) Quand j'ai ouvert mon fichier bash_profile, j'ai réalisé que la dernière ligne d'exportation avait l'air vraiment désordonnée avec des symboles étranges, donc je l'ai changée entièrement en export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Je suis un débutant absolu dans ce domaine mais j'ai réussi à obtenir ces étapes en lisant des morceaux de solutions de différentes questions sur SE, donc j'espère que cela pourra aider quelqu'un d'autre.

1 votes

C'est la meilleure réponse à cette question, bien fait et merci de l'avoir partagée. J'ai rencontré le même problème et ce n'est qu'en lisant le vôtre que j'ai pu le résoudre.

3voto

sdmeyers Points 2249

On dirait que vous avez écrasé votre chemin plutôt que de le compléter.

Assurez-vous que lorsque vous définissez votre PATH, vous incluez "${PATH}" pour inclure votre chemin existant, ainsi.

Par défaut, le $PATH est défini dans quelques fichiers. Techniquement, vous devriez ajouter votre $PATH dans le fichier .bash_profile de votre répertoire personnel.

Une suggestion est de vérifier si un certain dossier existe avant de l'ajouter à votre PATH.

Par exemple, j'ai :

if [ -d /usr/local/bin ] ; then
    PATH=/usr/local/bin:"${PATH}"
fi

if [ -d /usr/local/mysql/bin ] ; then
    PATH=/usr/local/mysql/bin:"${PATH}"
fi

if [ -d /opt/local/bin ] ; then
    PATH=/opt/local/bin:"${PATH}"
fi

if [ -d /opt/local/sbin ] ; then
    PATH=/opt/local/sbin:"${PATH}"
fi

if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

(Le -d directory vérifie si le répertoire existe)

2voto

rd2 Points 121

J'ai rencontré ce problème lorsque j'ai tenté d'ajouter un nouveau répertoire à PATH en utilisant une commande d'exportation incorrecte dans mon fichier d'installation. ~/.bash_profile . Les deux exemples ci-dessous.

export PATH=/some/new/path:PATH (incorrect, note missing $)

vs

export PATH=/some/new/path:$PATH (correct)

1voto

Oskar Points 1242

En plus de la correction qu'il apporte, j'aimerais également signaler une chose à tester.

Si votre fenêtre actuelle a simplement une mauvaise variable PATH et que votre système n'est pas plus défaillant, vous pouvez facilement réparer le chemin :

echo $PATH
/usr/libexec/path_helper

Comparez les résultats des deux commandes ci-dessus. Si vous voulez revenir à un chemin "sûr", il suffit de copier et coller la ligne que la commande path_helper fournit dans ce terminal. Sur un système Mac 10.11 non modifié, vous devriez obtenir cette sortie de l'outil d'aide :

PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"; export PATH;

Si votre parcours doit être personnalisé, consultez les excellentes réponses à cette question.

1 votes

Ou vous pouvez émettre PATH=$(/usr/bin/getconf PATH) pour obtenir un PATH utilisable dans le shell actuel. /usr/local n'existe pas sur un système non modifié.

0 votes

Excellent @fdo - Je ne suis pas conscient de ce qui pourrait perturber getconf donc cela pourrait être aussi bien que de coder les choses en dur. C'est aussi plus court que ma solution de "force brute".

2 votes

path_helper construit le PATH à partir du PATH actuel, la fonction /etc/paths et tous les fichiers contenus dans le fichier /etc/paths.d . Elle peut également être influencée par les paramètres PATH dans le fichier /etc/launchd.conf . getconf affiche le PATH du système codé en dur dans le noyau. sysctl user.cs_path .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X