Próbuję użyć /etc/paths.d, aby dodać plik wykonywalny do mojej zmiennej ścieżki, ale jak dotąd nie powiodło się.
Pełna ścieżka do pliku wykonywalnego to: /opt/ImageMagick/bin/convert
/etc/paths.d zawiera dwa pliki: 40-XQuartz i ImageMagick
40-XQuartz zawiera jedną linię: /opt/X11/bin
ImageMagick zawiera jedną linię:/opt/ImageMagick/bin
Mój echo $PATH
daje:
/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
Wygląda więc na to, że tylko pierwszy plik (40-XQuartz) wykonuje swoje zadanie. Uprawnienia dwóch plików (40-XQuartz i ImageMagick) są dokładnie takie same, więc moje pytanie brzmi: dlaczego pierwszy działa, a drugi nie.
Używam OS X Mavericks.
/etc/paths.d
działa dla mnie, ale uruchamiam ponownie dowolną aplikację terminalową, której używam (ITerm2 w moim przypadku), aby nowa ścieżkaOdpowiedzi:
Czy zacząłeś nową powłokę logowania od czasu dodania nowego pliku dla ImageMagick? Ustawienie ścieżki z
paths.d
pozycji jest wykonane w/etc/profile
i/etc/csh.login
, więc musisz uruchomić nową powłokę, aby nowe wpisy zaczęły obowiązywać.OS X
path_helper
ustawia ścieżkę na podstawie plików w/etc/paths.d
- zawsze możesz ją wywołać ręcznie (zakładając tutaj powłokę podobną do Bourne'a):źródło
Bieganie
dodaje
/opt/ImageMagick/bin
doPATH
mojej instalacji.Zastanawiasz się
PATH
w jakimś innym miejscu~/.bash_profile
?Ścieżki w
/etc/paths.d/
dodaje się do ścieżki za pomocą/usr/libexec/path_helper
, wykonane z/etc/profile
,/etc/zsh.env
i/etc/csh.login
.path_helper
nie jest uruchamiany przez aplikacje graficzne lub gdy bash jest wywoływany jako powłoka niezalogowana.Możesz również ustawić wartość domyślną
PATH
w/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
i uruchom ponownie procesy.Wolę zmienić ścieżkę
/etc/launchd.conf
, ponieważ wpływa ona również na programy, które nie są uruchamiane z powłok, takie jak edytory tekstu i programy uruchamiane przez uruchomione zadania.źródło
Świetnie, po prostu bawiłem się, dodając ImageMagic do mojego komputera Mac. Potrzebujesz nie tylko
ImageMagick/bin
swojegoPATH
, ale także zestawu zmiennych środowiskowych lub dodanych do:Aby przetestować, możesz utworzyć go ręcznie za pomocą:
Informacje na temat ustawiania zmiennej środowiskowej dla Mac OS można znaleźć tutaj. Ustawianie zmiennych środowiskowych w OS X?
źródło