direnv使い始め
direnvとは
cdのようなシェルスクリプトをフックとしてディレクトリごとに環境変数を自動で設定してくれるツール- ディレクトリをぬけ出すと環境変数はリセットされる
インストールとセットアップ
brewを使ってインストール:
$ brew install direnv $ brew link direnv
あるいはdirenvはGoで書かれているので、Goとmakeを使って:
$ git clone https://github.com/direnv/direnv $ cd direnv $ make install
インストール後、フックを追加:
echo 'eval "$(direnv hook bash)"' >> ~/.bashrc echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc echo 'eval (direnv hook fish)' >> ~/.config/fish/config.fish echo 'eval `direnv hook tcsh`' >> ~/.cshrc
もし、~/.bash_profileが存在しない場合は、以下の内容で新しく~/.bash_profileを作成、あるいは追加:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
使用例
.envrcファイルでディレクトリ固有の環境変数を指定direnv edit .コマンドでそのディレクトリの.envrcファイルを作成
使用する前に環境変数EDITORを設定しておく。
export EDITOR={エディタ}
ターゲットのディレクトリに.envrcファイルを作成:
$ mkdir test
$ cd test
$ echo ${FOO-nope} //環境変数FOOは存在しないのでnopeを返す
nope
$ direnv edit .
.envrcを編集する:
export FOO=foo
リロード:
$ direnv reload direnv: loading ~/.direnvrc direnv: loading .envrc direnv: export +FOO
環境変数が設定されているか、確認:
$ echo ${FOO-nope}
foo
ディレクトリを抜けだしてみる:
$ cd ..
direnv: unloading
$ echo ${FOO-nope}
nope