Direnv - Gerenciar variáveis ​​de ambiente específicas do projeto no Linux

Direnv - Gerenciar variáveis ​​de ambiente específicas do projeto no Linux

Direnv é uma extensão bacana de código aberto para o seu shell em um sistema operacional UNIX, como Linux e MacOS. É compilado em um único executável estático e suporta conchas como Bash, Zsh, TCSH, e peixe.

O principal objetivo de Direnv é permitir variáveis ​​de ambiente específicas do projeto sem desordem ~/.perfil ou arquivos de inicialização de shell relacionados. Ele implementa uma nova maneira de carregar e descarregar variáveis ​​de ambiente, dependendo do diretório atual.

É usado para carregar 12Factor Aplicativos (uma metodologia para a criação de aplicativos de software como serviço) variáveis ​​de ambiente, criam ambientes de desenvolvimento isolados por projeto e também carregam segredos para implantação. Além disso, pode ser usado para criar soluções de instalação e gerenciamento de várias versões semelhantes a rbenv, pyenv, e phpenv.

Então, como funciona o Direnv?

Antes que o shell carregue um prompt de comando, Direnv verifica a existência de um .Envrc arquivo no atual (que você pode exibir usando o comando pwd) e diretório pai. O processo de verificação é rápido e não pode ser notado em cada prompt.

Uma vez que encontra o .Envrc Arquivo com as permissões apropriadas, ele o carrega em uma sub-concha e captura todas as variáveis ​​exportadas e as disponibiliza para o shell atual.

Instalando o DIRENV em sistemas Linux

Na maioria das distribuições Linux, as Direnv O pacote está disponível para instalação nos repositórios padrão usando o gerenciador de pacotes do sistema, conforme mostrado.

$ sudo apt install direnv #debian, ubuntu e hortelã $ sudo dnf install direnv #fedora 

Em outras distribuições, como Red Hat Enterprise Linux (RHEL) e CENTOS ou qualquer distribuição que suporta snaps, você pode instalá -lo como um foto. Isso exige que você tenha o Snapd instalado em seu sistema.

$ sudo snap install direnv 

Como conectar a direita em sua casca de festa

Depois de instalar Direnv, você precisa conectá -lo ao seu shell Linux atual. Por exemplo para Bash, Adicione a seguinte linha no final do ~/.Bashrc arquivo.

Certifique -se de que apareça mesmo depois de rvm, Git-Prompt, e outras extensões de concha que manipulam o rápido.

Eval "$ (BASH DIRENV GONG)" 

Para Shell ZSH

Anexar a seguinte linha no final do ~/.ZSHRC arquivo:

Eval "$ (Direnv Hook Zsh)" 

Para casca de peixe

Anexar a seguinte linha no final do ~/.configuração/peixe/configuração.peixe arquivo:

Eval (Direnv Hook Fish) 

Em seguida, feche a janela do terminal ativo e abra um novo shell ou adie o arquivo como mostrado.

$ fonte ~//.BASHRC $ fonte ~//.zshrc $ fonte ~//.configuração/peixe/configuração.peixe 

Como usar o Direnv no shell Linux

Para demonstrar como Direnv obras, criaremos um novo diretório chamado Tecmint_projects e mova -se nele.

$ mkdir ~/tecmint_projects $ cd tecmint_projects/ 

Em seguida, vamos criar uma nova variável chamada Test_variable Na linha de comando e quando é ecoada, o valor deve estar vazio:

$ eco $ test_variable 

Agora vamos criar um novo .Envrc arquivo que contém código Bash que será carregado por Direnv. Também tentamos adicionar a linha “exportar o test_variable = tecmint”Nele usando o comando echo e o caractere de redirecionamento de saída (>):

$ echo export test_variable = tecmint> .Envrc 

Por padrão, o mecanismo de segurança bloqueia o carregamento do .Envrc arquivo. Como o conhecemos um arquivo seguro, precisamos aprovar seu conteúdo executando o seguinte comando:

$ direnv permitir . 

Agora que o conteúdo de .Envrc O arquivo foi autorizado a carregar, vamos verificar o valor de Test_variable que definimos antes:

$ eco $ test_variable 

Quando saímos do Tecmint_project diretório, o Direnv será descarregado e se verificarmos o valor de Test_variable Mais uma vez, deve estar vazio:

$ CD… $ ECHO $ ​​TEST_VARIABLE 
Demonstração de como Direnv funciona no Linux

Toda vez que você se move para o Tecmint_projects diretório, o .Envrc O arquivo será carregado como mostrado na captura de tela a seguir:

$ CD Tecmint_projects/ 
Carregando o arquivo EnvRC em um diretório

Revogar a autorização de um dado .Envrc, use o negar comando.

$ direnv negar . #no diretório atual ou $ direnv negar/path/to/.Envrc 

Para obter mais informações e instruções de uso, consulte o Direnv Página do homem:

$ Man Direnv 

Adicionalmente, Direnv também usa a stdlib (Direnv-Stdlib) vem com várias funções que permitem que você adicione facilmente novos diretórios ao seu CAMINHO e fazer muito mais.

Para encontrar a documentação para todas as funções disponíveis, verifique o Direnv-Stdlib Página de entrada manual:

$ MAN DIRENV-STDLIB 

Isso é tudo o que tivemos para você! Se você tiver alguma dúvida ou pensamento para compartilhar conosco, use o formulário de feedback abaixo.