Direnv - Zarządzaj zmiennymi środowiskowymi specyficznymi dla projektu w Linux

Direnv - Zarządzaj zmiennymi środowiskowymi specyficznymi dla projektu w Linux

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_variable 
Demonstracja 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.