dotenv にて、~/.local/share/direnv ディレクトリが消えてしまい、direnv が正しく反映されない場合の対処方法

どうしたらよいか

自分で mkdir してしまえばよいです。

$ mkdir ~/.local/share/direnv

現れるエラーメッセージ

この状況になると、「.envrc が存在しているけどその内容が適用できない」と怒られます。以下のようになります。

$ cd (適当なディレクトリ名)
direnv: error (適当なディレクトリ名)/.envrc is blocked. Run `direnv allow` to approve its content

ここで当然に direnv allow を実行すると思うのですが、以下のようなエラーが出て実行できません。

$ direnv allow

Migrating the allow data to the new location

The allowed .envrc permissions used to be stored in the XDG_CONFIG_DIR. It's
better to keep that folder for user-editable configuration so the data is
being moved to XDG_DATA_HOME.

moving (ホームディレクトリ)/.config/direnv/allow to (ホームディレクトリ)/.local/share/direnv/allow
direnv: error rename (ホームディレクトリ)/.config/direnv/allow (ホームディレクトリ)/.local/share/direnv/allow: no such ile or directory

該当 Issue

すでに Issue に上がっていました。

github.com

どういうときに起きるか

macOS 上で、$ brew upgrade した直後に起きました。

Powered by はてなブログ