direnv est une extension open-source astucieuse pour votre shell sur un système d’exploitation UNIX tel que Linux et macOS. Il est compilé en un seul exécutable statique et prend en charge des shells tels que frapper, zsh, tcsh, et poisson.
Le but principal de direnv est de permettre des variables d’environnement spécifiques au projet sans encombrer ~/.profile
ou des fichiers de démarrage du shell associés. Il implémente une nouvelle façon de charger et décharger les variables d’environnement en fonction du répertoire courant.
Il est utilisé pour charger 12 facteur des applications (une méthodologie pour créer des applications logicielles en tant que service) des variables d’environnement, créer des environnements de développement isolés par projet et également charger des secrets pour le déploiement. En outre, il peut être utilisé pour créer des solutions d’installation et de gestion multi-versions similaires à rbenv, pyenv, et phpenv.
Alors, comment fonctionne direnv?
Avant que le shell ne charge une invite de commande, direnv vérifie l’existence d’un .envrc
dans le fichier courant (que vous pouvez afficher à l’aide du commande pwd) et le répertoire parent. Le processus de vérification est rapide et ne peut pas être remarqué à chaque invite.
Une fois qu’il trouve le .envrc
fichier avec les autorisations appropriées, il le charge dans un sous-shell bash et il capture toutes les variables exportées et les rend disponibles pour le shell actuel.
Installation de direnv dans les systèmes Linux
Dans la plupart des distributions Linux, le direnv Le package peut être installé à partir des référentiels par défaut à l’aide de votre gestionnaire de packages système, comme indiqué.
$ sudo apt install direnv #Debian,Ubuntu and Mint $ sudo dnf install direnv #Fedora
Sur d’autres distributions telles que Red Hat Enterprise Linux (RHEL) et CentOS ou toute distribution qui prend en charge s’enclenche, vous pouvez l’installer en tant que casser. Cela vous oblige à avoir snapd installé sur votre système.
$ sudo snap install direnv
Comment accrocher direnv dans votre shell Bash
Après l’installation direnv, vous devez le connecter à votre shell Linux actuel. Par exemple pour Frapper, ajoutez la ligne suivante à la fin du ~/.bashrc
fichier.
Assurez-vous qu’il apparaît même après RVM, git-promptet d’autres extensions de shell qui manipulent l’invite.
eval "$(direnv hook bash)"
Pour ZSH Shell
Ajoutez la ligne suivante à la fin de la ~/.zshrc
fichier:
eval "$(direnv hook zsh)"
Pour FISH Shell
Ajoutez la ligne suivante à la fin de la ~/.config/fish/config.fish
fichier:
eval (direnv hook fish)
Fermez ensuite la fenêtre du terminal actif et ouvrez un nouveau shell ou sourcez le fichier comme indiqué.
$ source ~/.bashrc $ source ~/.zshrc $ source ~/.config/fish/config.fish
Comment utiliser direnv dans Linux Shell
Démontrer comment direnv fonctionne, nous allons créer un nouveau répertoire appelé tecmint_projects
et y aller.
$ mkdir ~/tecmint_projects $ cd tecmint_projects/
Ensuite, créons une nouvelle variable appelée TEST_VARIABLE
sur la ligne de commande et quand il est fait écho, la valeur doit être vide:
$ echo $TEST_VARIABLE
Nous allons maintenant créer un nouveau .envrc
fichier contenant du code Bash qui sera chargé par direnv. Nous essayons également d’ajouter la ligne «exporter le TEST_VARIABLE = tecmint« En utilisant le commande echo et le caractère de redirection de sortie (>)
:
$ echo export TEST_VARIABLE=tecmint > .envrc
Par défaut, le mécanisme de sécurité bloque le chargement du .envrc
fichier. Comme nous le connaissons comme un fichier sécurisé, nous devons approuver son contenu en exécutant la commande suivante:
$ direnv allow .
Maintenant que le contenu de .envrc
fichier a été autorisé à charger, vérifions la valeur de TEST_VARIABLE
que nous avons défini avant:
$ echo $TEST_VARIABLE
Lorsque nous quittons le tecmint_project
répertoire, le direnv sera déchargé et si nous vérifions la valeur de TEST_VARIABLE
encore une fois, il doit être vide:
$ cd .. $ echo $TEST_VARIABLE
Chaque fois que vous entrez dans le tecmint_projects répertoire, le .envrc
Le fichier sera chargé comme indiqué dans la capture d’écran suivante:
$ cd tecmint_projects/
Révoquer l’autorisation d’une personne donnée .envrc
, Utilisez le Nier commander.
$ direnv deny . #in current directory OR $ direnv deny /path/to/.envrc
Pour plus d’informations et d’instructions d’utilisation, consultez le direnv page de manuel:
$ man direnv
Aditionellement, direnv utilise également un stdlib (direnv-stdlib) est livré avec plusieurs fonctions qui vous permettent d’ajouter facilement de nouveaux répertoires à votre CHEMIN et bien plus encore.
Pour trouver la documentation de toutes les fonctions disponibles, consultez le direnv-stdlib page d’entrée manuelle:
$ man direnv-stdlib
C’est tout ce que nous avions pour vous! Si vous avez des questions ou des réflexions à partager avec nous, utilisez le formulaire de commentaires ci-dessous.
Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer:
TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, guides et livres Linux sur le Web. Des millions de personnes visitent TecMint! pour rechercher ou parcourir les milliers d’articles publiés disponibles GRATUITEMENT pour tous.
Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en signe d’appréciation.
Nous vous remercions de votre soutien sans fin.
.