2013-08-23 16 views
24

im próby ustawienia MAC (UNIX) to projekt, burza z git https://github.com/nathanmarz/storm/wiki/Setting-up-development-environmentco jest PATH w systemie

Download a Storm release , unpack it, and put the unpacked bin/ directory on your PATH 

Moje pytanie brzmi, co oznacza, PATH, co dokładnie chcą mnie zrobić?

Czasem widzę niektórych/bin/ścieżka, $ PATH echo PATH

może ktoś wyjaśnić pojęcie drogi, więc można skonfigurować wszystko łatwo w przyszłości bez ślepo wykonując instrukcje?


Jest to zdecydowanie technicznie pytanie. Może trival dla profesjonalistów. Ale dla ludzi takich jak ja naprawdę potrzebuję przewodników. Nie rozumiem, dlaczego ludzie próbują zamknąć to pytanie.

+0

Można Google, że! – Chiron

+1

Odnośnie do głosów na zamknięcie, mogę myśleć o dwóch powodach: (1) nie jest to prawdopodobnie pytanie * programistyczne, per se, a zatem może nie pasować do [standardów na dany temat] (http: // /stackoverflow.com/help/on-topic) i zamiast tego należy do, powiedzmy, [SU] (http://superuser.com/) i/lub (2), że jest to pytanie prawdopodobnie zadawane (i udzielane) przed . Wydaje mi się jednak, że jest to wystarczająco ważne pytanie (nawet jeśli może to być niewłaściwe miejsce), dlatego dodałem odpowiedź, która, mam nadzieję, okaże się pomocna. Najlepiej! – lindes

Odpowiedz

35

PATH jest specjalną zmienną środowiskową w systemach UNIX (i UNIX-podobnych, np. GNU/Linux), która jest często używana i obsługiwana przez powłokę (choć inne rzeczy mogą z niej korzystać).

Jest nieco zwięzłe wyjaśnienie on wikipedia, ale w zasadzie służy do określenia, gdzie szukać plików wykonywalnych (niezależnie od tego, czy pliki binarne, skrypty powłoki, cokolwiek).

można dowiedzieć się, co aktualnie PATH jest ustawiony za pomocą prostego polecenia powłoki:

: $; echo $PATH 

(Uwaga: : $; jest przeznaczona do reprezentowania zachęty powłoki, może to być coś zupełnie innego dla ciebie; po prostu wiedz, że niezależnie od tego, jaki jest twój znak zachęty, to właśnie reprezentuję ten ciąg.)

W zależności od systemu i wcześniejszej konfiguracji wartość będzie się różnić, ale bardzo prosty przykład wyjścia może wyglądać następująco:

/usr/bin:/bin:/usr/local/bin 

Jest to dwukropek (:) - oddzielona lista katalogów, w których można wyszukiwać pliki wykonywalne (takie jak ls, i tak dalej). Krótko mówiąc, podczas próby wykonania polecenia ze swojej powłoki (lub z wnętrza niektórych) inny program w określony sposób), przeszukuje każdy z katalogów na tej liście, po kolei szuka pliku wykonywalnego o podanej nazwie i uruchamia pierwszy znaleziony. A więc taka jest koncepcja na każde pytanie.

Z tego miejsca, co mówi ta dokumentacja, należy dodać katalog, w którym rozpakowałeś oprogramowanie, w szczególności jego podkatalog bin, do zmiennej $PATH. Jak to zrobić, zależy od tego, której powłoki używasz, ale w przypadku większości (Bourne-kompatybilnych) powłok, powinieneś być w stanie zrobić coś takiego, jeśli jesteś w katalogu, w którym katalog bin to:

: $; PATH="$PATH:$PWD/bin"; export PATH 

W prawie wszystkich, ale rzeczywistej Bourne shell, ten może być skrócony do:

: $; export PATH="$PATH:$PWD/bin" 

(nie będę męczyć wyjaśniając dla csh zgodny muszli (bo: Zgadzam się z innych rad, że cię don't use them), ale można w nich także zrobić coś podobnego, jeśli z jakiegoś powodu jest to wybrane przez ciebie środowisko.)

Przypuszczalnie jednak, będziemy chcieli, aby zapisać to w pliku konfiguracyjnym powłoki specyficzne (może być ~/.profile, ~/.bashrc, ~/.zshrc ... w zależności od powłoki) i bez odniesienia do $PWD, ale raczej do tego, co rozszerzył się do. Jednym ze sposobów osiągnięcia tego celu można byłoby zrobić coś takiego:

: $; echo "export PATH=\"\$PATH:$PWD/bin\"" 

i skopiuj/wklej otrzymanej linii do odpowiedniego pliku konfiguracyjnego.

Oczywiście można również wygenerować odpowiednie polecenie w inny sposób, szczególnie jeśli Twój $PWD nie jest obecnie tam, gdzie znajduje się katalog bin.

Zobacz także:

+0

Niestety pierwszy link jest zepsuty. –

+0

Dziękuję za zwrócenie mi tej uwagi. Znalazłem zaktualizowany link do tej samej treści i zaktualizowałem go w odpowiedzi. (Uwaga: był to pierwszy link Zobacz także, a nie pierwszy link w ogólnej odpowiedzi). – lindes