linux_china技术雷达linux_china技术雷达

direnv

env
采用

direnv是一个非常好用的工具,它可以根据当前目录下的.envrc文件自动加载环境变量,这样你就不用再手动设置环境变量了。 这样可以轻松地做到每项目每环境的隔离,非常适合开发者使用。

常见案例:

  • Load 12factor apps environment variables
  • Create per-project isolated development environments
  • Load secrets for deployment

Tips

  • 加载 .env: dotenv or dotenv_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

References