Direnv - Administrar variables de entorno específicas del proyecto en Linux

Direnv - Administrar variables de entorno específicas del proyecto en Linux

directo es una ingeniosa extensión de código abierto para su shell en un sistema operativo Unix como Linux y MacOS. Se compila en un solo ejecutable estático y admite conchas como intento, zsh, TCSH, y pez.

El objetivo principal de directo es permitir variables de entorno específicas del proyecto sin desorden ~/.perfil o archivos de inicio de shell relacionados. Implementa una nueva forma de cargar y descargar variables de entorno dependiendo del directorio actual.

Se usa para cargar 12 factor APPS (una metodología para construir variables de entorno de software como aplicaciones de servicio), crear entornos de desarrollo aislados por proyecto y también cargar secretos para la implementación. Además, se puede utilizar para construir soluciones de instalación y administración de versiones múltiples similares a rbenv, pyenv, y phpenv.

Entonces, ¿cómo funciona Direnv??

Antes de que el shell cargue un símbolo del sistema, directo verifica la existencia de un .envidia Archivo en el actual (que puede mostrar usando el comando pwd) y el directorio principal. El proceso de verificación es rápido y no se puede notar en cada aviso.

Una vez que encuentra el .envidia Archivo con los permisos apropiados, lo carga en una subhorro de Bash y captura todas las variables exportadas y las pone a disposición del shell actual.

Instalación de Direnv en sistemas Linux

En la mayoría de las distribuciones de Linux, la directo El paquete está disponible para instalar desde los repositorios predeterminados utilizando el Administrador de paquetes de su sistema como se muestra.

$ sudo apto install direnv #Debian, Ubuntu y Mint $ sudo dnf instalación direnv #fedora 

En otras distribuciones como Red Hat Enterprise Linux (Rhel) y Cento o cualquier distribución que admita las instantáneas, puede instalarla como un quebrar. Esto requiere que tenga Snapd instalado en su sistema.

$ sudo snap install direnv 

Cómo enganchar direnv en tu caparazón de fiesta

Después de instalar directo, Necesitas conectarlo a tu shell Linux actual. Por ejemplo para Intento, Agregue la siguiente línea al final del ~/.bashrc archivo.

Asegúrese de que aparezca incluso después RVM, git-prompt, y otras extensiones de shell que manipulan el aviso.

eval "$ (Direnv Hook Bash)" 

Para shell zsh

Agregue la siguiente línea al final del ~/.ZSHRC archivo:

eval "$ (Direnv Hook Zsh)" 

Para cáscara de pescado

Agregue la siguiente línea al final del ~/.config/pesh/config.pez archivo:

eval (pez de gancho de Direnv) 

Luego cierre la ventana del terminal activo y abra un nuevo shell o obtenga el archivo como se muestra.

$ fuente ~/.Bashrc $ Source ~/.ZSHRC $ Source ~/.config/pesh/config.pez 

Cómo usar Direnv en Linux Shell

Para demostrar como directo funciona, crearemos un nuevo directorio llamado tecMint_projects y muévete a él.

$ mkdir ~/tecmint_projects $ cd tecMint_projects/ 

A continuación, creemos una nueva variable llamada Test_variable En la línea de comando y cuando se hace eco, el valor debe estar vacío:

$ echo $ test_variable 

Ahora crearemos un nuevo .envidia archivo que contiene código bash que se cargará por directo. También intentamos agregar la línea "Exportar el test_variable = tecMint"En él, usando el comando echo y el carácter de redirección de salida (>):

$ Echo Export test_variable = TecMint> .envidia 

Por defecto, el mecanismo de seguridad bloquea la carga de la .envidia archivo. Como lo sabemos como un archivo seguro, necesitamos aprobar su contenido ejecutando el siguiente comando:

$ Direnv Permitir . 

Ahora que el contenido de .envidia Se ha permitido que el archivo se cargue, verifiquemos el valor de Test_variable que establecemos antes:

$ echo $ test_variable 

Cuando salimos del tecmint_project directorio, el directo se descargará y si verificamos el valor de Test_variable Una vez más, debería estar vacío:

$ CD ... $ echo $ test_variable 
Demostración de cómo funciona Direnv en Linux

Cada vez que te mudas al tecMint_projects directorio, el .envidia El archivo se cargará como se muestra en la siguiente captura de pantalla:

$ cd tecMint_projects/ 
Cargando el archivo EnvRC en un directorio

Para revocar la autorización de un dado .envidia, utilizar el denegar dominio.

$ Direnv negar . #en el directorio actual o $ Direnv Deny/Path/to/.envidia 

Para obtener más información e instrucciones de uso, consulte el directo Página del hombre:

$ hombre direnv 

Además, directo También usa un stdlib (direnv-stdlib) viene con varias funciones que le permiten agregar fácilmente nuevos directorios a su CAMINO y haz mucho más.

Para encontrar la documentación para todas las funciones disponibles, consulte el direnv-stdlib Página de entrada manual:

$ hombre direnv-stdlib 

Eso es todo lo que tuvimos para ti! Si tiene alguna pregunta o pensamiento para compartir con nosotros, use el formulario de comentarios a continuación.