36 votes

Ajouter un nouvel exécutable à la variable d'environnement PATH ?

J'essaie d'installer une bibliothèque appelée Phantomjs.

Les instructions comprennent cette ligne :

http://code.google.com/p/phantomjs/wiki/BuildInstructions

Pour plus de commodité, copiez l'exécutable bin/phantomjs.app/Contents/MacOS/phantomjs dans un répertoire de votre PATH.

Comment dois-je m'y prendre ?

0 votes

Je ne pense pas que vous ayez besoin de vous soucier de mettre cela dans votre chemin puisque bin y est déjà. Mais si vous le souhaitez, vous pouvez trouver comment le faire ici : troubleshooters.com/linux/prepostpath.htm

0 votes

@cksum mais il s'agit d'un chemin relatif ; nous ne savons pas ce qui précède le "bin".

0 votes

@bneely Oui, mais il n'y a pas de ~/bin. Les seuls emplacements sont /bin, /usr/bin et /usr/local/bin. Tous ces emplacements sont déjà dans votre chemin. Si vous exécutez path vous verrez ce qui suit par défaut : PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/b‌​in Je n'ai pas regardé dans l'install script du programme en question, mais il serait extrêmement improbable qu'il s'installe dans son propre dossier 'bin' quelque part. Et vous ne pouvez pas ajouter des chemins relatifs AFAIK. Je suis enclin à penser qu'il s'agit juste d'une faute de frappe d'un guide bâclé.

39voto

Gerry Points 14225

La manière la plus propre d'y parvenir serait d'établir un lien symbolique avec le binaire dans le répertoire /usr/local/bin (qui est inclus dans PATH par défaut). Vous devrez peut-être créer ce répertoire s'il n'existe pas encore. Vous pouvez vérifier si ces répertoires sont déjà dans votre PATH en ouvrant Terminal.app et en tapant :

echo $PATH

Ceci générera une liste délimitée par deux points de pourcentage de tous les répertoires de votre PATH.

Si les répertoires /usr/local ou /usr/local/bin n'existent pas encore, exécutez ce qui suit :

sudo mkdir -p /usr/local/bin

Faites un lien symbolique avec le binaire, remplacez (/Applications) par le chemin vers phantomjs.app s'il diffère :

sudo ln -s /Applications/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin

Maintenant, vous ne devriez avoir aucun problème à exécuter phantomjs à partir de la ligne de commande.

0 votes

+1, ls /usr/local/bin/ || sudo mkdir /usr/local/bin/ ; sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

22voto

Brian Points 48423

Pour découvrir ce qui se trouve dans votre PATH, ouvrez une fenêtre Terminal et exécutez cette commande : echo $PATH . La sortie est une liste de répertoires séparés par deux points, dont vous pouvez exécuter le contenu sans spécifier le chemin complet.

Puisque /usr/bin est dans mon chemin, je peux exécuter la commande w en tapant simplement w au lieu de la version complète /usr/bin/w .

De plus, il n'est pas nécessaire de déplacer l'exécutable dans l'un des répertoires PATH indiqués. Les autres options comprennent

  • Laissez l'exécutable où il est, et faites un lien symbolique vers lui depuis l'un des répertoires PATH.
  • Ajouter un répertoire à votre PATH en le définissant explicitement dans un script de connexion pour votre shell.

0 votes

S'il vous plaît, suivez les conseils de @Gerry dans l'autre réponse, et lien symbolique ça. C'est le moyen le plus propre !

0 votes

Si, d'aventure, vous avez besoin d'un répertoire complet dans le répertoire PATH car il y a beaucoup d'exécutables auxquels vous devez avoir accès, il n'y a pas d'autre option. c'est ce que le PATH est pour. Actuellement, nous utilisons le ~/.bash_profile à ajouter au chemin d'accès .

4voto

Linus Points 373

Bien que l'établissement d'un lien symbolique avec le fichier à partir d'un autre répertoire fonctionne, je préfère copier/déplacer le fichier dans le répertoire de l'entreprise. usr/local/bin pour ne pas avoir à le faire "deux fois".

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin

3voto

ShaneMit Points 31

Pour en revenir à l'origine de votre problème, si vous installez phantomjs, vous pouvez utiliser npm pour vous faciliter la tâche.

Si tu le fais, tu peux juste courir :

npm install -g phantomjs-prebuilt

qui installera le binaire dans le répertoire bin approprié. (le drapeau -g indique à npm que le paquet doit être installé globalement).

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