direnv
env采用
direnv是一个非常好用的工具,它可以根据当前目录下的.envrc文件自动加载环境变量,这样你就不用再手动设置环境变量了。
这样可以轻松地做到每项目每环境的隔离,非常适合开发者使用。
常见案例:
- Load 12factor apps environment variables
- Create per-project isolated development environments
- Load secrets for deployment
Tips
- 加载
.env:dotenvordotenv_if_exists,环境变量个人是建议使用.env进行维护,也方便应用进行集成。 - 添加环境变量:
PATH_add /path/to/bin - 项目目录集成:
source ~/xxx/.envrc - 编译选项:
export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib"
export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include"
- use用法:
use_ruby() {
echo "Ruby $1"
}
use ruby 1.9.3
- layout用法:
layout_virtualenv() {
}
layout virtualenv
常见项目样例
uv项目样例:
export VIRTUAL_ENV=".venv"
layout python3
PATH_add ".venv/bin"
alias pip3="uv pip"
alias pip="uv pip"
Java + JBang项目样例:
eval "$(jbang jdk java-env 21)"
export JENV_VERSION=21
direnv & Friends
- hermit: manages isolated, self-bootstrapping sets of tools in software projects
- nix: https://nixos.org/
References
- direnv: https://direnv.net/
- direnv Wiki: https://github.com/direnv/direnv/wiki
- direnv stdlib: https://direnv.net/man/direnv-stdlib.1.html
- direnv for Python: https://github.com/direnv/direnv/wiki/Python