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

16

J'essaie d'installer cette bibliothèque appelée phantomjs.

Les instructions incluent cette ligne:

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

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

Comment puis-je faire cela?

Harry
la source
Je ne pense pas que vous auriez à vous soucier de mettre cela sur votre chemin car bin y est déjà. Mais si vous le souhaitez, vous pouvez trouver comment y parvenir ici: troubleshooters.com/linux/prepostpath.htm
@cksum mais c'est un chemin relatif; nous ne savons pas ce qui précède le "bac".
bneely
@bneely Oui, mais il n'y a pas de ~ / bin. Les seuls emplacements sont / bin, / usr / bin et / usr / local / bin. Tous sont déjà sur votre chemin. Si vous exécutez, pathvous verrez par défaut ce qui suit: PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binJe n'ai pas parcouru le script d'installation du programme en question, mais il serait extrêmement improbable de l'installer quelque part dans son propre dossier «bin». Et vous ne pouvez pas ajouter de chemins relatifs AFAIK. Je suis enclin à penser juste une faute de frappe d'un guide bâclé.
Je sais que les chemins relatifs ne peuvent pas être ajoutés; Je déclare que le chemin dans la question est un chemin relatif car il ne commence pas par un / ou un ~.
bneely

Réponses:

10

Pour savoir ce qui est dans votre PATH, ouvrez une fenêtre de terminal et exécutez la commande suivante : echo $PATH. Le résultat 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 sur mon chemin, je peux exécuter la wcommande simplement en tapant wau lieu de la valeur complète /usr/bin/w.

De plus, vous n'avez pas à déplacer l'exécutable dans l'un des répertoires PATH répertoriés. Les autres options incluent

  • Laissez l'exécutable où il se trouve et créez un lien symbolique vers celui-ci depuis l'un des répertoires PATH
  • Ajoutez un répertoire à votre PATH en le définissant explicitement dans un script de connexion pour votre shell
triste
la source
Veuillez suivre les conseils de @ Gerry dans l'autre réponse et créer un lien symbolique . C'est la manière la plus propre!
cregox
Si, par hasard, vous avez besoin d'un répertoire complet dans le PATH, car il y a de nombreux exécutables auxquels vous devez accéder, il n'y a pas d'autre option et c'est à cela que PATHsert. Actuellement, nous utilisons le ~ / .bash_profile pour ajouter au chemin .
cregox
20

Le moyen le plus propre d'y parvenir serait de créer un lien symbolique entre 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

Cela générera une liste délimitée par deux points de tous les répertoires de votre CHEMIN.

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

Symlink 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.

Gerry
la source
+1,ls /usr/local/bin/ || sudo mkdir /usr/local/bin/ ; sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
Jose Carlos Ramos Carmenates
3

Pour en revenir à la racine de votre problème, si vous installez phantomjs, vous pouvez utiliser npm pour le rendre plus facile.

Si vous le faites, vous pouvez simplement exécuter:

npm install -g phantomjs-prebuilt

qui installera le binaire à l'intérieur du répertoire bin approprié. (L'indicateur -g indique à npm que le package doit être installé globalement)

ShaneMit
la source
0

En associant le fichier à un autre lien direct, je préfère copier / déplacer le fichier vers usr/local/bin, pour ne pas l'avoir "deux fois".

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin
Niko
la source