Direnv环境变量管理工具

2022年 10月 2日 35.8k 0

面向移动和 Web 开发人员的开源后端服务器

direnv 是一个基于 golang 开发的简单而又强大的环境变量管理工具,其可以帮助我们简化环境变量的管理,同时还支持多种操作平台,包括 MacOS、Ubuntu、Fedora 等等。
Direnv环境变量管理工具

1. 工具安装

推荐使用 docker 进行容器化部署

Direnv 是一个 Shell 程序的扩展,它可以帮助我们更好地使用现有的 Shell 程序,其会根据当前目录(进入对应目录中之后)加载和卸载我们指定的环境变量。使用它之后,可以帮助我们创建每个项目独立的开发环境,或者部署加载秘钥信息,等等。安装分为两部分:

# from binary builds
$ curl -sfL https://direnv.net/install.sh | bash
$ chmod +x direnv
$ mv direnv /usr/local/bin

# from system packages
$ apt install direnv
$ yum install direnv
# bash hook - ~/.bashrc
$ eval "$(direnv hook bash)"

# zsh hook - ~/.zshrc
$ eval "$(direnv hook zsh)"

# fish hook - ~/.config/fish/config.fish
$ direnv hook fish | source

# tcsh hook - ~/.cshrc
$ eval `direnv hook tcsh`

2. 工作原理

原来很简单,就是使用自定义的配置文件,完成的。

当进入目录对应目录之后,Direnv 会检查当前和父目录中是否存在 .envrc 或 .env 的文件。如果文件存在并且有权限访问的话,则会将其加载到 BASH 的 shell 中,然后通过 Direnv 捕获所有导出的变量,提供给当前 shell 使用。如果 .envrc 和 .env 文件同时存在的话,则将优先选择 .envrc 文件。
它支持像 Bash、ZSH、TCSH 和 FISH 这样的所有常见的 Shell 工具,允许项目特定的环境变量而不会对 〜/.profile 文件进行混乱。因为 Direnv 被编译成一个静态可执行文件,所以它足够快,在每个提示符上都不会被注意到。它也是语言无关的,可以用来构建类似于 rbenv、pyenv 和 phpenv 的解决方案。

3. 快速使用

安装之后,如何开始使用呢?

# 创建一个演示目录
$ mkdir ~/my-project
$ cd ~/my-project

# 可以看到FOO变量没有被用到
$ echo ${FOO-nope}
nope

# 创建.envrc文件新加自动以变量 - 安全机制不允许加载
$ echo export FOO=foo > .envrc
.envrc is not allowed

# 去除安全机制再进行使用
$ direnv allow .
direnv: reloading
direnv: loading .envrc
direnv export: +FOO

# 显示FOO环境变量被加载
$ echo ${FOO-nope}
foo

# 退出项目目录
$ cd ..
direnv: unloading

# 之前设置的变量看不到了
$ echo ${FOO-nope}
nope

4. 参考链接

送人玫瑰,手有余香!

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论