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 autorisations des deux fichiers (40-XQuartz et ImageMagick) sont exactement les mêmes, donc ma question est de savoir pourquoi le premier fonctionne et le second ne l'est pas.
J'utilise OS X Mavericks.
/etc/paths.d
fonctionne pour moi, mais je redémarre l'application terminal que j'utilise (ITerm2 dans mon cas) pour que le nouveau chemin prenne effetRéponses:
Avez-vous commencé un nouveau shell de connexion depuis l'ajout du nouveau fichier pour ImageMagick? Le paramétrage du chemin des
paths.d
entrées se fait 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):la source
Fonctionnement
ajoute
/opt/ImageMagick/bin
àPATH
mon installation.Êtes-vous en train
PATH
de passer outre dans un autre endroit~/.bash_profile
?Les chemins en
/etc/paths.d/
sont ajoutés au chemin par/usr/libexec/path_helper
, qui est exécuté à partir/etc/profile
,/etc/zsh.env
et/etc/csh.login
.path_helper
n'est pas exécuté par des applications graphiques ou lorsque bash est appelé en tant que shell sans connexion.Vous pouvez également définir une valeur
PATH
par défaut dans/etc/launchd.conf
: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
.launchctl</etc/launchd.conf;sudo launchctl</etc/launchd.conf
et relancez les processus.Je préfère changer le chemin d'accès
/etc/launchd.conf
, car cela affecte également les programmes qui ne sont pas démarrés à partir de shells, comme les éditeurs de texte et les programmes démarrés par les travaux launchd.la source
Génial, je ne faisais que jouer avec l'ajout d'ImageMagic à mon Mac. Non seulement vous avez besoin
ImageMagick/bin
de votrePATH
, vous avez également besoin d'un ensemble de variables d'environnement, ou ajouté à:Pour le tester, vous pouvez le créer manuellement avec:
Vous trouverez ici des informations sur la définition d'une variable d'environnement pour Mac OS, Définition de variables d'environnement sous OS X?
la source