Table of Contents
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
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
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.