20 votes

Comment utiliser /etc/paths.d pour ajouter des fichiers exécutables à mon chemin ?

J'essaie d'utiliser /etc/paths.d pour ajouter un exécutable à ma variable de chemin mais je n'ai pas réussi jusqu'à présent.

Le chemin complet du fichier exécutable est : /opt/ImageMagick/bin/convert

/etc/paths.d contient deux fichiers : 40-XQuartz et ImageMagick

Le 40-XQuartz contient une ligne : /opt/X11/bin
L'ImageMagick contient une ligne : /opt/ImageMagick/bin

Mon echo $PATH donne :

/Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

Il semble donc que seul le premier fichier (40-XQuartz) fasse son travail. Les permissions des deux fichiers (40-XQuartz et ImageMagick) sont exactement les mêmes. Ma question est donc de savoir pourquoi le premier fonctionne et pas le second.

J'utilise OS X Mavericks.

24voto

JohnoBoy Points 16435

Avez-vous lancé un nouveau shell de connexion depuis l'ajout du nouveau fichier pour ImageMagick ? Le réglage du chemin d'accès de paths.d Les entrées sont effectuées dans /etc/profile et /etc/csh.login Vous devez donc démarrer un nouveau shell pour que les nouvelles entrées prennent effet.

OS X utilise path_helper pour définir le chemin en fonction des fichiers dans /etc/paths.d - vous pouvez toujours l'appeler manuellement (en supposant un shell de type Bourne ici) :

$ eval `/usr/libexec/path_helper -s`

4voto

Running

echo /opt/ImageMagick/bin|sudo tee /etc/paths.d/ImageMagick;bash -l;echo $PATH

ajoute /opt/ImageMagick/bin à PATH sur mon installation.

Est-ce que vous remplacez PATH dans un autre endroit comme ~/.bash_profile ?

Les chemins dans /etc/paths.d/ sont ajoutés au chemin par /usr/libexec/path_helper qui est exécuté à partir de /etc/profile , /etc/zsh.env et /etc/csh.login . path_helper n'est pas exécuté par les applications graphiques ou lorsque bash est invoqué en tant que shell non connecté.

Vous pouvez également définir une valeur par défaut PATH sur /etc/launchd.conf :

  1. Exécuter par exemple setenv PATH /Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/opt/ImageMagick/bin|sudo tee -a /etc/launchd.conf .
  2. Soit vous redémarrez, soit vous exécutez launchctl</etc/launchd.conf;sudo launchctl</etc/launchd.conf et relancer les processus.

Je préfère changer le chemin dans /etc/launchd.conf car il affecte également les programmes qui ne sont pas lancés à partir de shells, comme les éditeurs de texte et les programmes lancés par des tâches launchd.

0voto

Tony Points 1

Génial, je m'amusais justement à ajouter ImageMagic à mon Mac. Non seulement vous avez besoin ImageMagick/bin dans votre PATH vous devez également définir ou ajouter une variable d'environnement :

Pour tester, vous pouvez le créer manuellement avec :

export DYLD_LIBRARY=".:/opt/ImageMagic/lib"

Vous trouverez des informations sur la définition d'une variable d'environnement pour Mac OS ici, Définir des variables d'environnement dans OS X ?

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