Nie wiem, jak trwale dodać ścieżki do ścieżki PATH. Env var. Znalazłem kilka pytań do to za każdym razem z innymi odpowiedziami. Utworzyłem .bash_profile w moim katalogu domowym, ale przy każdym ponownym uruchomieniu muszę ponownie ręcznie export moje ścieżki.

source ~/.bash_profile nawet nie działa.

Czego mi brakuje?

To jest obecnie moje .bash_profile

export PATH="/usr/local/opt/python/libexec/bin:$PATH" export PATH="/usr/local/opt/openssl/bin:$PATH" export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH" export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include" 

Komentarze

  • Co masz na myśli mówiąc o " source ~ / .bash_profile nie ' t nawet działa "? Czy otrzymujesz wiadomość o błędzie?
  • Zamknij terminal, a następnie otwórz go ponownie … co ' jest wynikiem: echo $PATH
  • @ user3439894 tak, że ' jest dziwne, w rzeczywistości wszystkie ścieżki są tutaj, z wyłączeniem pierwszego wiersza (pythonowego)
  • Spodziewałem się, że opublikujesz wynik echo $PATH, aby móc dokładnie i dokładnie zobaczyć, jaki był wynik. Przykro mi, ale nie mogę ' pomóc, jeśli nie dostałem informacji, o które proszę!
  • /Applications/XAMPP/xamppfiles/bin:/usr/local/opt/openssl/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Odpowiedź

Przedstawiłeś właściwy sposób dodawania dodatkowych katalogów do $PATH użytkownika.

Krok 1 – ~/.bash_profile

Aby rozpocząć, wprowadź zmiany w swoim ~/.bash_profile dodając dowolne lokalizacje. chciałbym wprowadzić zmiany w swoim $PATH.

export PATH="/usr/local/opt/python/libexec/bin:$PATH" export PATH="/usr/local/opt/openssl/bin:$PATH" export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH" 

Krok 2 – źródło ~/.bash_profile

Po dokonaniu powyższych zmian w tym pliku możesz użyć polecenia source lub . notacja „przeładuj” i zmiany dokonane w tym pliku w kontekście bieżącej powłoki.

$ . ~/.bash_profile 

-lub-

$ source ~/.bash_profile 

Krok 3 – oceń zmiany

Po dokonaniu edycji i ich pobraniu możesz potwierdzić, że przyniosły pożądany efekt, powtarzając zawartość varible.

$ echo $PATH | tr ":" "\n" /usr/local/bin /usr/bin /bin /usr/sbin /sbin /opt/X11/bin /Applications/Wireshark.app/Contents/MacOS /usr/local/sbin /Users/smingolelli/bin /usr/local/opt/go/libexec/bin /Applications/Visual Studio Code.app/Contents/Resources/app/bin /Users/smingolelli/projects/kubebuilder/kubebuilder_1.0.5_darwin_amd64/bin/ 

Kolejność ma znaczenie, więc katalogi, które występują jako pierwsze, będą przeszukiwane jako pierwsze. Jeśli plik binarny znajduje się w wielu miejscach, pierwszym napotkanym miejscem będzie to, które jest używane.

Pamiętaj też, że wielokrotne źródła tego pliku będą miały negatywny wpływ na dalsze dodawanie tych samych zmian, więc często jest tak, że będziesz chciał całkowicie ustawić $PATH do spójnego znanego stanu początkowego, a następnie zmodyfikować go za pomocą tych typów poleceń:

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin" export PATH="/some/new/dir:$PATH" 

Korzystanie z path_helper

macOS zawiera również pomocnika do pomocy w zarządzaniu $PATH. Znajduje się tutaj /usr/libexec/path_helper.

Więc zamiast ręcznie tworzyć bazę $PATH, jak wspomniano powyżej, możesz zamiast tego użyj tego fragmentu, aby uzyskać znany dobry punkt początkowy dla $PATH.

[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) 

To zajmie się zainicjowaniem $PATH, więc wszystkie katalogi wymienione w /etc/paths i /etc/paths.d/ zostaną dodane automatycznie.

Komentarze

  • Lepiej byłoby użyć [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) do zainicjowania ścieżki, tak aby wszystkie katalogi wymienione w /etc/paths i /etc/paths.d/ są dodawane automatycznie.
  • @nohillside ma sens. Nie byłem ' nie wiem, że macOS ma tego pomocnika, dziękuję, ' dodam do ' er.
  • Mam spojrzenie na /etc/profile. ' niewiele się tam dzieje, ale początkowe ising PATH jest jego częścią.
  • Tylko głowa ' w górę, mój ~./bash_profile po prostu kieruje do ~/.bashrc, który jest rzeczywistym plikiem, który musiałem zmodyfikować.
  • @slm [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) usunięcie drugiej części daje taki sam wynik jak użycie pierwszej części, gdy source ~/.bash_profile więcej niż raz. Może wyjaśnienie, co robi każda część, byłoby pomocne.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *