Direnv - Gérer les variables d'environnement spécifiques au projet dans Linux
- 4189
- 597
- Romain Martinez
direnv est une extension open source nifty 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 frapper, zsh, tcsh, et les poissons.
Le but principal de direnv est de permettre des variables d'environnement spécifiques au projet sans encombre ~ /.profil
ou fichiers de démarrage de shell associés. Il met en œuvre une nouvelle façon de charger et de décharger les variables d'environnement en fonction du répertoire actuel.
Il est utilisé pour charger 12facteurs applications (une méthodologie pour créer des variables d'environnement logicielles en tant que service), créer des environnements de développement isolés par projet et également charger des secrets pour le déploiement. De plus, il peut être utilisé pour créer des solutions d'installation et de gestion multi-version similaires rbenv, pyenv, et phpenv.
Alors, comment fonctionne Direnv?
Avant que le shell charge une invite de commande, direnv vérifie l'existence d'un .Envrc
fichier dans le répertoire actuel (que vous pouvez afficher à l'aide de la commande pwd) et le répertoire parent. Le processus de vérification est rapide et ne peut pas être remarqué sur chaque invite.
Une fois qu'il trouve le .Envrc
Fider avec les autorisations appropriées, il le charge dans un sous-shell bash et il capture toutes les variables exportées et les met à la disposition du shell actuel.
Installation de Direnv dans les systèmes Linux
Dans la plupart des distributions Linux, le direnv Un package est disponible pour installer à partir des référentiels par défaut à l'aide de votre gestionnaire de package système comme indiqué.
$ sudo apt installer Direnv # debian, ubuntu et menthe $ sudo dnf installer direnv #fedora
Sur d'autres distributions telles que Red Hat Enterprise Linux (Rhel) et Centos ou toute distribution qui prend en charge les snaps, vous pouvez l'installer en tant que instantané. Cela vous oblige à installer Snapd sur votre système.
$ sudo snap installer direnv
Comment accrocher Direnv dans votre coquille de bash
Après installation direnv, Vous devez l'accrocher à votre shell Linux actuel. Par exemple pour Frapper, Ajouter la ligne suivante à la fin du ~ /.bashrc
déposer.
Assurez-vous qu'il apparaît même après RVM, git-compit, et d'autres extensions de coque qui manipulent l'invite.
eval "$ (Direnv Hook bash)"
Pour la coquille zsh
Ajoutez la ligne suivante à la fin du ~ /.zshrc
déposer:
eval "$ (Direnv Hook Zsh)"
Pour la coquille de poisson
Ajoutez la ligne suivante à la fin du ~ /.config / poisson / config.poisson
déposer:
Evale (Direnv Hook Fish)
Fermez ensuite la fenêtre du terminal actif et ouvrez un nouveau shell ou achetez le fichier comme indiqué.
$ source ~ /.Bashrc $ source ~ /.Zshrc $ source ~ /.config / poisson / config.poisson
Comment utiliser Direnv dans Shell Linux
Pour démontrer comment direnv fonctionne, nous créerons un nouveau répertoire appelé Tecmint_projects
et montez dedans.
$ mkdir ~ / tecmint_projects $ cd tecmint_projects /
Ensuite, créons une nouvelle variable appelée Test_variable
Sur la ligne de commande et lorsqu'elle est repris, la valeur doit être vide:
$ echo $ test_variable
Maintenant, nous allons créer un nouveau .Envrc
fichier qui contient du code bash qui sera chargé par direnv. Nous essayons également d'ajouter la ligne "exporter le test_variable = tecmint«Dedans en utilisant la 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
déposer. Puisque nous le savons un fichier sécurisé, nous devons approuver son contenu en exécutant la commande suivante:
$ Direnv Autoriser .
Maintenant que le contenu de .Envrc
Le fichier a été autorisé à se charger, vérifions la valeur de Test_variable
que nous avons mis 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
Une fois de plus, il devrait être vide:
$ cd… $ echo $ test_variableDémonstration de la fonctionnalité de Direnv dans Linux
Chaque fois que vous vous déplacez dans le Tecmint_projects répertoire, le .Envrc
Le fichier sera chargé comme indiqué dans la capture d'écran suivante:
$ cd tecmint_projects /Chargement du fichier Envrc dans un répertoire
Pour révoquer l'autorisation d'un .Envrc
, Utilisez le refuser commande.
$ Direnv Deny . # dans le répertoire actuel ou $ Direnv Deny / Path / To /.Envrc
Pour plus d'informations et d'instructions d'utilisation, consultez le direnv Page de l'homme:
$ man direnv
En outre, 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 faites tellement plus.
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 toi! Si vous avez des questions ou des pensées à partager avec nous, utilisez le formulaire de rétroaction ci-dessous.
- « 4 façons de générer une forte clé pré-partagée (PSK) dans Linux
- Les 5 meilleurs lecteurs de musique de ligne de commande pour Linux »