如何使用/etc/paths.d将可执行文件添加到我的路径?


15

我正在尝试使用/etc/paths.d将可执行文件添加到我的path变量中,但到目前为止我没有成功。

可执行文件的完整路径为: /opt/ImageMagick/bin/convert

/etc/paths.d包含两个文件:40-XQuartz和ImageMagick

40-XQuartz包含一行:/opt/X11/bin
ImageMagick包含一行:/opt/ImageMagick/bin

我的echo $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:/usr/local/bin:/opt/X11/bin

因此,似乎只有第一个文件(40-XQuartz)可以完成其工作。这两个文件(40-XQuartz和ImageMagick)的权限是完全相同的,所以我的问题是为什么第一个有效,而第二个无效。

我正在运行OS X Mavericks。


您使用什么外壳?关于/ etc / paths呢?
Max Ried 2014年

/etc/paths.d为我增加了刚度,但我重新启动了我正在使用的任何终端应用程序(在我的情况下为ITerm2),新路径才能生效
user1256923 2014年

Answers:


17

自为ImageMagick添加新文件以来,您是否启动了新的登录Shell?paths.d条目路径的设置是在/etc/profile和中完成的/etc/csh.login,因此您需要启动新的外壳程序才能使新条目生效。

OS X用于path_helper根据其中的文件设置路径/etc/paths.d-您始终可以手动调用它(假设此处是类似Bourne的shell):

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

当然我已经启动了一个新的shell,甚至重启了Mac。
skiabox 2014年

新的登录外壳为我工作
白炽灯手

3

跑步

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

添加/opt/ImageMagick/binPATH我的安装中。

您是否PATH在其他某个地方压倒了~/.bash_profile

路径在/etc/paths.d/被添加到由所述路径/usr/libexec/path_helper,这是从运行/etc/profile/etc/zsh.env/etc/csh.loginpath_helper不是由图形应用程序运行,或者当bash作为非登录shell调用时。

您还可以设置默认PATH/etc/launchd.conf

  1. 例如运行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. 重新启动,或者运行launchctl</etc/launchd.conf;sudo launchctl</etc/launchd.conf并重新启动进程。

我更喜欢更改中的路径/etc/launchd.conf,因为它还会影响不是从外壳启动的程序,例如文本编辑器和由启动的作业启动的程序。


0

太棒了,我只是想在Mac上添加ImageMagic。您不仅需要ImageMagick/bin在中PATH,还需要一个环境变量集,或将其添加到以下内容:

要进行测试,您可以使用以下方法手动创建它:

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

可以在此处找到在Mac OS中设置环境变量的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.