Dodanie nowego pliku wykonywalnego do zmiennej środowiskowej PATH?


16

Próbuję zainstalować tę bibliotekę o nazwie phantomjs.

Instrukcje zawierają ten wiersz:

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

Dla wygody skopiuj wykonywalny bin / phantomjs.app / Contents / MacOS / phantomjs do jakiegoś katalogu w ŚCIEŻCE.

Jak mam to zrobic?


Nie sądzę, żebyś musiał się martwić, że umieścisz to na swojej drodze, ponieważ bin już tam jest. Ale jeśli chcesz, możesz dowiedzieć się, jak to zrobić tutaj: troubleshooters.com/linux/prepostpath.htm

@cksum, ale jest to ścieżka względna; nie wiemy, co jest przed „bin”.
bneely

@prawdopodobnie tak, ale nie ma ~ / bin. Jedynymi lokalizacjami są / bin, / usr / bin i / usr / local / bin. Wszystkie są już na twojej drodze. Jeśli uruchomisz path, zobaczysz domyślnie następujące informacje: PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binNie przeglądałem skryptu instalacyjnego danego programu, ale bardzo mało prawdopodobne jest zainstalowanie go gdzieś we własnym folderze „bin”. I nie można dodawać ścieżek względnych AFAIK. Jestem skłonny myśleć tylko o literówce z niechlujnego przewodnika.

Wiem, że ścieżek względnych nie można dodać; Twierdzę, że ścieżka w pytaniu jest ścieżką względną, ponieważ nie zaczyna się od / lub ~.
bneely

Odpowiedzi:


10

Aby dowiedzieć się, co jest w zmiennej PATH, należy otworzyć okno terminala i uruchom polecenie: echo $PATH. Dane wyjściowe to rozdzielona dwukropkami lista katalogów, których zawartość można uruchomić bez określania pełnej ścieżki.

Ponieważ / usr / bin znajduje się na mojej ścieżce, mogę uruchomić wpolecenie, wpisując wzamiast pełnego /usr/bin/w.

Ponadto nie musisz przenosić pliku wykonywalnego do jednego z wymienionych katalogów PATH. Inne opcje obejmują

  • Pozostaw plik wykonywalny tam, gdzie jest, i link do niego z jednego z katalogów PATH
  • Dodaj katalog do PATH, jawnie ustawiając go w skrypcie logowania dla twojej powłoki

Postępuj zgodnie z radą @ Gerry w drugiej odpowiedzi i dowiązajsymbolicznie . To najczystszy sposób!
cregox

Jeśli przypadkiem potrzebujesz pełnego katalogu PATH, ponieważ jest w nim wiele plików wykonywalnych, do których potrzebujesz dostępu, nie ma innej opcji i po to PATHjest. Obecnie używamy ~ / .bash_profile, aby dodać do ścieżki .
cregox

20

Najczystszym sposobem na osiągnięcie tego byłoby symlinkowanie pliku binarnego w katalogu / usr / local / bin (który domyślnie jest zawarty w PATH). Może być konieczne utworzenie tego katalogu, jeśli jeszcze nie istnieje. Możesz sprawdzić, czy te katalogi są już w ŚCIEŻCE, otwierając Terminal.app i wpisując:

echo $PATH

Spowoduje to wygenerowanie rozdzielonej dwukropkami listy wszystkich katalogów w zmiennej PATH.

Jeśli katalogi / usr / local lub / usr / local / bin jeszcze nie istnieją, wykonaj następujące czynności:

sudo mkdir -p /usr/local/bin

Symlinizuj plik binarny, zamień (/ Applications) na ścieżkę do phantomjs.app, jeśli różni się:

sudo ln -s /Applications/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin

Teraz nie powinieneś mieć problemów z wykonywaniem phantomjs z wiersza poleceń.


+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

Wracając do źródła problemu, jeśli instalujesz phantomjs, możesz użyć npm, aby to ułatwić.

Jeśli to zrobisz, możesz po prostu uruchomić:

npm install -g phantomjs-prebuilt

który zainstaluje plik binarny w odpowiednim katalogu bin. (flaga -g wskazuje npm, że pakiet ma zostać zainstalowany globalnie)


0

Podczas symlinkowania pliku z innego directoy, wolę kopiować / przenosić plik usr/local/bin, aby nie mieć go „dwa razy”.

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.