DIRENV - Projektspezifische Umgebungsvariablen unter Linux verwalten

DIRENV - Projektspezifische Umgebungsvariablen unter Linux verwalten

Direnv ist eine nette Open-Source-Erweiterung für Ihre Shell auf einem Unix-Betriebssystem wie Linux und MacOS. Es wird in eine einzelne statische ausführbare Datei zusammengestellt und unterstützt Muscheln wie verprügeln, ZSH, TCSH, und Fisch.

Der Hauptzweck von Direnv ist, projektspezifische Umgebungsvariablen ohne Überstörung zu ermöglichen ~/.Profil oder verwandte Shell -Startdateien. Es implementiert eine neue Möglichkeit, Umgebungsvariablen abhängig vom aktuellen Verzeichnis zu laden und zu entladen.

Es wird zum Laden verwendet 12faktor Apps (eine Methodik zum Erstellen von Apps von Software-as-a-Service) Umgebungsvariablen, erstellen Sie isolierte Entwicklungsumgebungen pro projekt. Darüber hinaus kann es verwendet werden, um Installations- und Verwaltungslösungen für Mehrversions zu erstellen, die ähnlich sind wie rbenv, pyenv, und phpenv.

Wie funktioniert Direnv also??

Bevor die Shell eine Eingabeaufforderung lädt, Direnv Schecks auf die Existenz von a .Envrc Datei in der aktuellen Datei (die Sie mit dem Befehl pwd anzeigen können) und über das übergeordnete Verzeichnis. Der Überprüfungsvorgang ist schnell und kann auf der Eingabeaufforderung nicht bemerkt werden.

Sobald es das findet .Envrc Datei mit den entsprechenden Berechtigungen lädt es in einen Bash-Unterschalen und erfasst alle exportierten Variablen und stellt sie der aktuellen Hülle zur Verfügung.

Installieren von Direnv in Linux -Systemen

In den meisten Linux -Verteilungen die Direnv Das Paket kann mit Ihrem Systempaketmanager wie gezeigt über die Standard -Repositories installiert werden.

$ sudo apt installieren Sie Direnv #Debian, Ubuntu und Mint $ sudo dnf installieren Sie Direnv #Fedora 

Auf andere Verteilungen wie z Red Hat Enterprise Linux (Rhel) Und Centos oder jede Verteilung, die Schnappschüsse unterstützt, können Sie sie als installieren Schnappnahme. Auf diese Weise müssen Sie Snapd auf Ihrem System installieren lassen.

$ sudo snap install direnv 

Wie man Direnv in Ihre Bash -Shell anschließt

Nach der Installation Direnv, Sie müssen es in Ihre aktuelle Linux -Shell anschließen. Zum Beispiel für Verprügeln, Fügen Sie die folgende Zeile am Ende des ~/.bashrc Datei.

Stellen Sie sicher, dass es auch danach erscheint RVM, Git-Prompt, und andere Hülle -Erweiterungen, die die Eingabeaufforderung manipulieren.

Eval "$ (Direnv Hook Bash)" 

Für ZSH -Hülle

Fügen Sie die folgende Zeile am Ende des ~/.ZSHRC Datei:

Eval "$ (Direnv Hook ZSH)" 

Für Fischschale

Fügen Sie die folgende Zeile am Ende des ~/.Konfiguration/Fisch/Konfiguration.Fisch Datei:

Eval (Direnv Hook Fish) 

Schließen Sie dann das aktive Terminalfenster und öffnen Sie eine neue Shell oder beziehen Sie die Datei wie gezeigt.

$ source ~/.bashrc $ source ~/.zshrc $ source ~/.Konfiguration/Fisch/Konfiguration.Fisch 

So verwenden Sie Direnv in Linux Shell

Um zu zeigen, wie Direnv Arbeiten werden wir ein neues Verzeichnis namens erstellen tecmint_projects und bewegen.

$ mkdir ~/tecmint_projects $ cd tecmint_projects/ 

Lassen Sie uns als nächstes eine neue Variable namens erstellen Test_variable In der Befehlszeile und wenn sie wiederholt wird, sollte der Wert leer sein:

$ echo $ test_variable 

Jetzt werden wir eine neue erstellen .Envrc Datei, die Bash -Code enthält, der von geladen wird Direnv. Wir versuchen auch, die Zeile hinzuzufügen “Exportieren Sie die test_variable = tecmint”In IT unter Verwendung des Echo -Befehls und des Ausgangsumleitungszeichens (>):

$ echo Export test_variable = tecmint> .Envrc 

Standardmäßig blockiert der Sicherheitsmechanismus die Belastung der .Envrc Datei. Da wir es als sichere Datei kennen, müssen wir den Inhalt genehmigen, indem wir den folgenden Befehl ausführen:

$ direnv erlauben . 

Jetzt, wo der Inhalt von .Envrc Die Datei wurde geladen, lasst uns den Wert von überprüfen Test_variable Dass wir vorher gesetzt haben:

$ echo $ test_variable 

Wenn wir das verlassen tecmint_project Verzeichnis, die Direnv wird entladen und wenn wir den Wert von überprüfen Test_variable Noch einmal sollte es leer sein:

$ cd… $ echo $ test_variable 
Demonstration, wie Direnv unter Linux funktioniert

Jedes Mal, wenn Sie in die gehen tecmint_projects Verzeichnis, die .Envrc Die Datei wird wie im folgenden Screenshot geladen:

$ cd tecmint_projects/ 
Laden Sie die EnvRC -Datei in einem Verzeichnis

Die Genehmigung einer gegebenen Genehmigung widerrufen .Envrc, benutze die leugnen Befehl.

$ direnv leugnen . #in aktuelles Verzeichnis oder $ direnv leugnen/path/to/.Envrc 

Weitere Informationen und Verwendungsanweisungen finden Sie in der Direnv Mann Seite:

$ MAN DIRENV 

Zusätzlich, Direnv verwendet auch a stdlib (Direnv-Stdlib) Mit mehreren Funktionen, mit denen Sie Ihrem problemlos neue Verzeichnisse hinzufügen können WEG und so viel mehr machen.

Um die Dokumentation für alle verfügbaren Funktionen zu finden, überprüfen Sie die Direnv-Stdlib Handbucheintragsseite:

$ MAN DIRENV-STDLIB 

Das war alles, was wir für dich hatten! Wenn Sie Fragen oder Gedanken mit uns haben, verwenden Sie das Feedback -Formular unten.