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

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

direnv. es una ingeniosa extensión de código abierto para su shell en un sistema operativo UNIX como Linux y macOS. Está compilado en un solo ejecutable estático y admite shells como bash. zsh. tcsh. y fish.

El propósito principal de direnv. es permitir variables de entorno específicas del proyecto sin saturar ~/.profile 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 aplicaciones de 12factor. (una metodología para construir software-as-a-service apps) variables de entorno, crea entornos de desarrollo aislados por proyecto y también carga secretos para la implementación. Además, se puede utilizar para crear soluciones de administración e instalación de múltiples versiones similares a rbenv. pyenv y phpenv.

Entonces, ¿cómo funciona direnv? ?

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

Una vez que encuentra el archivo .envrc con los permisos apropiados, lo carga en un sub-shell de bash y captura todas las variables exportadas y los pone a disposición del shell actual.

Instalación de direnv en sistemas Linux

freestar.config.enabled_slots.push

En la mayoría de las distribuciones de Linux, el paquete direnv. está disponible para instalar desde los repositorios predeterminados usando el administrador de paquetes del sistema como se muestra.

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

En otras distribuciones como Red Hat Enterprise Linux. ( RHEL. y CentOS. o cualquier distribución que admita instantáneas, puedes instalarlo como un complemento. Esto requiere que tenga instalado snapd en su sistema.

$ sudo snap install direnv

Cómo conectar direnv a su Bash Shell

Después de instalar direnv. necesita conectarlo a su shell Linux actual. Por ejemplo, para Bash. agregue la siguiente línea al final del archivo ~/.bashrc.

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

eval “$ (direnv hook bash)” Para ZSH Shell

Agregue la siguiente línea al final de ~/Archivo .zshrc:

eval “$ (direnv hook zsh)” Para FISH Shell

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

eval ( direnv hook fish)

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

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

Cómo usar direnv en Linux Shell

Para demostrar cómo funciona direnv. crearemos un nuevo directorio llamado tecmint_projects y nos trasladaremos 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 t se repite, el valor debe estar vacío:

$ echo $ TEST_VARIABLE

Ahora crearemos un nuevo archivo .envrc que contiene código Bash que será cargado por direnv. También intentamos agregar la línea “ exportar el TEST_VARIABLE = tecmint. usando el comando echo y el carácter de redirección de salida (>):

$ echo export TEST_VARIABLE = tecmint> .envrc

Por defecto, el mecanismo de seguridad bloquea la carga del archivo .envrc. Como sabemos que es un archivo seguro, necesitamos aprobar su contenido ejecutando el siguiente comando:

$ direnv allow.

Ahora que se ha permitido que se cargue el contenido del archivo .envrc, verifiquemos el valor de TEST_VARIABLE que establecimos antes:

$ echo $ TEST_VARIABLE

Cuando salimos del directorio tecmint_project, el direnv. se descargará y si comprobamos 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  Demostración de cómo funciona direnv en Linux Demostración de cómo funciona direnv en Linux

Cada vez que ingrese al directorio tecmint_projects. el archivo .envrc se cargará como se muestra en la siguiente captura de pantalla:

$ cd tecmint_projects/Cargando archivo envrc en un directorio  Cargando archivo envrc en un directorio Cargando archivo envrc en un directorio

Para revocar la autorización de un .envrc dado, use el comando deny.

$ direnv deny. # en el directorio actual O $ direnv deny/path/to/.envrc

Para obtener más información e instrucciones de uso, consulte la página de manual de direnv.

$ man direnv

Además, direnv. también utiliza un stdlib. ( direnv-stdlib. viene con varias funciones que le permiten agregar fácilmente nuevos directorios a su PATH. y mucho más.

Para encontrar la documentación de todas las funciones disponibles, consulte la página de entrada del manual direnv-stdlib.

$ man direnv-stdlib

¡Eso es todo lo que teníamos para ti! Si tiene alguna pregunta o idea para compartir con nosotros, utilice el formulario de comentarios a continuación.