Direnv - Gerenciar variáveis de ambiente específicas do projeto no Linux
- 1596
- 267
- Loren Botsford
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_VARIABLEDemonstraçã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.
- « 4 maneiras de gerar uma forte chave pré-compartilhada (PSK) no Linux
- Os 5 melhores tocadores de música de linha de comando para Linux »