Direnv - Zarządzaj zmiennymi środowiskowymi specyficznymi dla projektu w Linux
- 4177
- 98
- Roland Sokół
Direnv to sprytne rozszerzenie open source dla powłoki w systemie operacyjnym UNIX, takim jak Linux i MacOS. Jest skompilowany w pojedynczy statyczny wykonywalny i obsługuje powłoki, takie jak grzmotnąć, Zsh, tcsh, i ryby.
Główny cel Direnv umożliwić zmienne środowiskowe specyficzne dla projektu bez zaśmiecania ~/.profil
lub powiązane pliki uruchamiania powłoki. Wdraża nowy sposób ładowania i rozładunku zmiennych środowiskowych w zależności od bieżącego katalogu.
Służy do ładowania 12Factor Apps (metodologia budowania aplikacji oprogramowania jako usługi) Zmienne środowiskowe, tworzenie izolowanych środowisk programistycznych, a także ładuj tajemnice do wdrożenia. Ponadto można go wykorzystać do budowy rozwiązań instalacji i zarządzania wieloma wersją podobnymi do rbenv, Pyenv i phpenv.
Więc jak działa Direnv?
Zanim skorupa załaduje wiersz polecenia, Direnv kontrole istnienia .envrc
Plik w bieżącym (który można wyświetlić za pomocą polecenia PWD) i katalogu nadrzędnego. Proces sprawdzania jest szybki i nie można go zauważyć na każdym podpowiedzi.
Gdy znajdzie .envrc
Zgłaszaj odpowiednie uprawnienia, ładuje go do podbrzeżu Bash i przechwytuje wszystkie wyeksportowane zmienne i udostępnia je bieżącej powładzie.
Instalowanie Direnv w systemach Linux
W większości rozkładów Linux, Direnv Pakiet jest dostępny do instalacji z domyślnych repozytoriów za pomocą menedżera pakietów systemowych, jak pokazano.
$ sudo apt Zainstaluj Direnv #Debian, Ubuntu i Mint $ sudo dnf instaluj Direnv #Fedora
O innych dystrybucjach, takich jak Red Hat Enterprise Linux (Rhel) I Centos lub dowolna dystrybucja obsługująca snapy, możesz go zainstalować jako pstryknąć. Wymaga to zainstalowania Snapd w systemie.
$ sudo snap instaluj Direnv
Jak zaczepić Direnv w skorupę bash
Po zainstalowaniu Direnv, Musisz zaczepić go do swojej obecnej skorupy Linux. Na przykład dla Grzmotnąć, Dodaj następujący wiersz na końcu ~/.Bashrc
plik.
Upewnij się, że pojawia się nawet po RVM, Git-Prompt, i inne rozszerzenia powłoki, które manipulują podpowiedziami.
Eval „$ (Direnv Hook Bash)”
Dla ZSH Shell
Dołącz następujący wiersz na końcu ~/.Zshrc
plik:
Eval „$ (Direnv Hook Zsh)”
Do skorupy rybnej
Dołącz następujący wiersz na końcu ~/.config/fish/config.ryba
plik:
Eval (Direnv Hook Fish)
Następnie zamknij okno aktywnego terminalu i otwórz nową powłokę lub źródło pliku, jak pokazano.
$ źródło ~/.bashrc $ Źródło ~/.Zshrc $ Źródło ~/.config/fish/config.ryba
Jak używać Direnv w Linux Shell
Aby zademonstrować, jak Direnv Działa, stworzymy nowy katalog o nazwie TecMint_Projects
I przejdź do tego.
$ mkdir ~/tecMint_Projects $ cd TecMint_Projects/
Następnie utwórzmy nową zmienną o nazwie Test_variable
W wierszu poleceń i po jego powtórzeniu wartość powinna być pusta:
$ echo $ test_variable
Teraz stworzymy nowy .envrc
plik zawierający kod bash, który zostanie załadowany przez Direnv. Staramy się również dodać linię „Wyeksportuj test_variable = Tecmint”W IT za pomocą polecenia Echo i znaku przekierowania wyjściowego (>)
:
$ echo Export Test_variable = TecMint> .envrc
Domyślnie mechanizm bezpieczeństwa blokuje ładowanie .envrc
plik. Ponieważ znamy to bezpieczny plik, musimy zatwierdzić jego treść, uruchamiając następujące polecenie:
$ Direnv Zezwalaj .
Teraz, gdy treść .envrc
Plik miał załadować, sprawdźmy wartość Test_variable
że ustawiliśmy wcześniej:
$ echo $ test_variable
Kiedy wychodzimy z TecMint_Project
katalog, Direnv zostanie rozładowane i jeśli sprawdzimy wartość Test_variable
Jeszcze raz powinien być pusty:
$ cd… $ echo $ test_variableDemonstracja działania Direnv w Linux
Za każdym razem, gdy przechodzisz do TecMint_Projects katalog, .envrc
Plik zostanie załadowany, jak pokazano na poniższym zrzucie ekranu:
$ CD TecMint_Projects/Ładowanie pliku ENVRC w katalogu
Cofnąć zezwolenie danego .envrc
, Użyj zaprzeczyć Komenda.
$ Direnv odmawia . #w bieżącym katalogu lub $ dirrenv odmów/ścieżka/do/.envrc
Aby uzyskać więcej informacji i instrukcji użytkowania, zobacz Direnv Strona Man:
$ MAN DIRENV
Dodatkowo, Direnv używa również stdlib (Direnv-stdlib) jest wyposażony w kilka funkcji, które pozwalają łatwo dodawać nowe katalogi do swoich ŚCIEŻKA i zrób o wiele więcej.
Aby znaleźć dokumentację dla wszystkich dostępnych funkcji, sprawdź Direnv-stdlib Ręczne strona wejścia:
$ MAN DIRENV-STDLIB
To wszystko, co dla ciebie mieliśmy! Jeśli masz jakieś pytania lub przemyślenia do podzielenia się z nami, skorzystaj z poniższego formularza opinii.
- « 4 sposoby wygenerowania silnego klucza wstępnego (PSK) w Linux
- 5 najlepszych odtwarzaczy muzycznych linii poleceń dla Linuksa »