direnv è un bel open-source di estensione per la vostra shell su un sistema operativo UNIX come Linux e macOS. Viene compilato in un unico statico eseguibile e supporta conchiglie come bash, zsh, tcshe pesce.

Lo scopo principale di direnv è quello di consentire per il progetto specifico per le variabili di ambiente senza ingombrare ~/.profile o i relativi file di avvio della shell. Implementa un nuovo modo per caricare e scaricare le variabili di ambiente a seconda della directory corrente.

Viene utilizzato per caricare 12factor app (una metodologia per la creazione di software-as-a-service apps) variabili di ambiente, di creare un progetto isolato ambienti di sviluppo, e anche caricare i segreti per la distribuzione. Inoltre, può essere utilizzato per costruire multi-versione per l’installazione e la gestione di soluzioni di simile a rbenv, pyenv, e phpenv.

Quindi, Come si Fa direnv Funziona?

Prima viene caricata la shell prompt dei comandi, direnv verifica l’esistenza di un .envrc file nella corrente (che è possibile visualizzare utilizzando il comando pwd) e la directory. Il processo di verifica è rapido e non può essere notato su ogni prompt.

Una volta si rileva che il .envrc file con le autorizzazioni appropriate, lo carica in un bash sub-shell e cattura tutti i esportato variabili e li rende disponibili per la shell corrente.

L’installazione di direnv nei Sistemi Linux

 

Nella maggior parte delle distribuzioni Linux, il direnv è disponibile il pacchetto per installare dai repository di default utilizzando il sistema di gestione pacchetti, come mostrato.

$ sudo apt install direnv		#Debian,Ubuntu and Mint
$ sudo dnf install direnv		#Fedora

Su altre distribuzioni come Red Hat Enterprise Linux (RHEL) e CentOS o qualsiasi distribuzione che supporta scatta, è possibile installarlo come un batter d’occhio. Ciò richiede snapd installato sul vostro sistema.

$ sudo snap install direnv

Come Hook direnv nella Vostra Shell Bash

Dopo l’installazione direnvè necessario collegare la shell di Linux. Per esempio per Bashaggiungere la seguente riga alla fine del ~/.bashrc file.

Assicurarsi che appare anche dopo rvm, git-prompte altre estensioni della shell che manipolare i comandi.

eval "$(direnv hook bash)"

Per ZSH Shell

Aggiungere la seguente riga alla fine del ~/.zshrc file:

eval "$(direnv hook zsh)" 

Per i PESCI Shell

Aggiungere la seguente riga alla fine del ~/.config/fish/config.fish file:

eval (direnv hook fish)

Quindi chiudere la finestra del terminale e aprire una nuova shell o di origine del file, come mostrato.

$ source ~/.bashrc
$ source  ~/.zshrc 
$ source ~/.config/fish/config.fish

Come Utilizzare direnv nella Shell di Linux

Per dimostrare come direnv funziona, si crea una nuova directory chiamata tecmint_projects e muoversi in esso.

$ mkdir ~/tecmint_projects
$ cd tecmint_projects/

Avanti, andiamo a creare una nuova variabile chiamata TEST_VARIABLE la linea di comando, e quando si è ripreso, il valore dovrebbe essere vuota:

$ echo $TEST_VARIABLE

Ora dobbiamo creare un nuovo .envrc file che contiene Bash codice che verrà caricato da direnv. Cerchiamo anche di aggiungere la riga “esportare il TEST_VARIABLE=tecmint” con il comando echo e il reindirizzamento dell’output di caratteri (>):

$ echo export TEST_VARIABLE=tecmint > .envrc

Per impostazione predefinita, il meccanismo di sicurezza che blocca il caricamento del .envrc file. Poiché sappiamo che è un file sicuro, dobbiamo approvare il suo contenuto eseguendo il seguente comando:

$ direnv allow .

Ora che il contenuto di .envrc il file è stato permesso di caricare, verificare il valore di TEST_VARIABLE che abbiamo impostato prima:

$ echo $TEST_VARIABLE

Quando si esce dal tecmint_project directory, il direnv verrà scaricato e, se andiamo a vedere il valore di TEST_VARIABLE una volta di più, dovrebbe essere vuota:

$ cd ..
$ echo $TEST_VARIABLE
Dimostrazione di Come direnv Funziona in Linux
Dimostrazione di Come direnv Funziona in Linux

Ogni volta che si sposta in tecmint_projects directory, il .envrc file verrà caricato come mostrato nella seguente schermata:

$ cd tecmint_projects/
Il caricamento di envrc File in una Directory
Il caricamento di envrc File in una Directory

Di revocare l’autorizzazione di un determinato .envrcutilizzare il negare comando.

$ direnv deny .			#in current directory
OR
$ direnv deny /path/to/.envrc

Per ulteriori informazioni e istruzioni per l’uso, vedere il direnv pagina man:

$ man direnv

Inoltre, direnv utilizza, inoltre, un stdlib (direnv-stdlibdispone di diverse funzioni che consentono di aggiungere facilmente nuove le directory PERCORSO e fare molto di più.

Per trovare la documentazione per tutte le funzioni disponibili, controllare la direnv-stdlib inserimento manuale pagina:

$ man direnv-stdlib

Che tutto quello che avevamo per voi! Se avete domande o pensieri da condividere con noi, utilizza il modulo di contatto qui sotto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *