■ はじめに
https://dk521123.hatenablog.com/entry/2023/01/14/000000
の続き。 Terraform の本読んで勉強してて direnv がでてきたので、メモ。
目次
【1】direnv 【2】環境設定 1)サポートOS 2)インストール 3)フックの設定 【3】Quick demo
【1】direnv
ディレクトリ毎に環境変数を定義して、 そのディレクトリがカレントになった時だけ 環境変数を有効/無効にしてくれるツール
【2】環境設定
1)サポートOS
* Linux * Mac * Windows
https://github.com/direnv/direnv/releases
Windowsのついて
本ではサポート外って言ってたけど 今は、exe があるみたい
https://loochs.org/blog/computer/shell/direnv-installation-for-windows/
2)インストール
https://github.com/direnv/direnv/blob/master/docs/installation.md#from-binary-builds
sudo apt install direnv or curl -sfL https://direnv.net/install.sh | bash # ... # The direnv binary is now available in: # # /home/user/.tfenv/bin/direnv # ... # For other shells, see https://direnv.net/docs/hook.html # # Thanks! direnv --version
3)フックの設定
* direnv をインストールした後、ディレクトリ移動した際に 自動的に direnv を実行するため、シェルにフックを指定する必要がある
https://github.com/direnv/direnv/blob/master/docs/hook.md
~/.bashrc
vi ~/.bashrc ~~~~ # Add this command eval "$(direnv hook bash)" ~~~~ source ~/.bashrc
【3】Quick demo
https://github.com/direnv/direnv#quick-demo
# Create a new folder for demo purposes. $ mkdir ~/my-project $ cd ~/my-project # Show that the FOO environment variable is not loaded. $ echo ${FOO-nope} nope # デフォルト「nope」が表示 # Create a new .envrc. This file is bash code that is going to be loaded by direnv. $ echo export FOO=foo > .envrc .envrc is not allowed # って表示されたら以下を行う(表示されない場合は、設定がうまくいっていない) # 「ls -al」で「.envrc」が存在しているはず(★このファイルがキモ★) # The security mechanism didn't allow to load the .envrc. Since we trust it, # let's allow its execution. $ direnv allow . direnv: reloading direnv: loading .envrc direnv export: +FOO # Show that the FOO environment variable is loaded. $ echo ${FOO-nope} foo # 今度は、環境変数「FOO=foo」が適用されて表示された # 別のディレクトリにいって、適用されていないことを確認してみる # Exit the project $ cd .. direnv: unloading # And now FOO is unset again $ echo ${FOO-nope} nope
参考文献
https://qiita.com/kompiro/items/5fc46089247a56243a62
direnvのインストールから動作確認までを解説 | ジコログ
関連記事
Terraform ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/05/000224
Terraform ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/12/09/222057
Terraform ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/05/03/000000
Terraform ~ tfenv / バージョン管理 ~
https://dk521123.hatenablog.com/entry/2023/01/14/000000