direnvを使おう

  • 410
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

direnvとは?

ディレクトリ毎に環境変数を定義して、そのディレクトリがカレントになった時だけ環境変数を有効にしてくれるツール。開発中のアプリ毎に環境変数を変えたい時に重宝する。

リポジトリはこちら
https://github.com/zimbatm/direnv

direnvは今話題のgoで作成されているみたいですね。

インストール方法

git clone http://github.com/zimbatm/direnv
cd direnv
sudo make install

Mac上でHomebrewを利用しているのであれば、brew install direnv でいいです。

shellにhookを追加する

zsh
~/.zshrc
export EDITOR=お使いのエディタ
eval "$(direnv hook zsh)"

使い方

環境変数を設定したいディレクトリにcdし、

zsh
direnv edit .

すると、カレントディレクトリに.envrcが作成され、設定した環境変数が追記されます。
例えばカレントの"bin"をPATHに追加したいのであれば、下記のように環境変数を宣言しましょう。

.envrc
export PATH=bin:$PATH

または、ショートカットで指定できます。

.envrc
PATH_add bin

自動的に環境変数が読み込まれます。

エラーが発生する場合

direnv: error .envrc is blocked. Run `direnv allow` to approve its content. というエラーが発生する場合は(エラーメッセージにある通り)以下のコマンドを実行してください。

direnv allow

注意

このファイルをリポジトリに追加し、githubにpushしてしまうと環境変数に設定したパスワード等が漏れてしまいます。.gitignore.envrcを追加することをオススメします。