问题标签 [direnv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jenkins - 如何自动加载特定于一个文件路径的环境变量?
我正在开发一种解决方案,以简化对失败的 Jenkins 构建的手动调试。这涉及通过 SSH 连接到正确的 Jenkins 节点并直接在 WORKSPACE 上进行,这样您就可以交互式地尝试可以解决您的问题的不同更改。
虽然我解决了在正确目录中启动 SSH 会话的问题,但缺少一点:您的 shell 缺少 Jenkins 定义的原始环境变量,这些对于之后运行任何命令至关重要。因此,构建的第一个命令不是set > .envrc
将所有内容都保存到这个 shell 文件中。
我的例子是指direnv
能够自动加载.envrc
文件的工具。出于安全考虑,此工具不会自动加载这些文件并给出消息direnv: error .envrc is blocked. Run
direnv allowto approve its content.
所以我目前的解决方案是direnv allow
在进入正确的文件夹后手动运行。
我怎样才能自动化这个,所以我不必输入这个?提示可能没问题,因为它只涉及按一个键而不是键入 ~12。
请注意,我不是被迫使用direnv
自己,我对其他解决方案持开放态度。
virtualenv - cd进入目录时如何自动激活virtualenvs
我的~/Documents
. 我几乎只在 python 中工作,所以这些基本上都是 python 项目。例如,每一个~/Documents/foo
都有自己的 virtualenv,~/Documents/foo/venv
(它们总是被称为 venv)。每当我在项目之间切换时(每天大约 10 次),我都会这样做
我已经到了厌倦打字deactivate
和source venv/bin/activate
. 我正在寻找一种方法来cd ../foo
为我处理 virtualenv 操作。
我对VirtualEnvWrapper很熟悉,在我看来这有点笨拙。据我所知,它似乎将您所有的 virtualenvs 移动到其他地方,并且增加了比它删除的复杂性更多的复杂性。(欢迎不同意见!)
我对shell脚本不太熟悉。如果您可以推荐一个低维护脚本来添加到我
~/.zshrc
的实现这一点,那就足够了,但是通过一些快速的谷歌搜索,我还没有找到这样的脚本。我是
zsh
/oh-my-zsh
用户。oh-my-zsh
似乎没有这个插件。这个问题的最佳答案是有人贡献了一个oh-my-zsh
插件来做到这一点。(如果这里的答案乏善可陈,我可能会这样做。
xcode - make 是用 xcode 安装的吗?
背景故事:学习编码 - python web 开发。我正在尝试安装 direnv 以获得虚拟环境。它说它依赖于make and go。 https://direnv.net/
问题:我正在查找 make ,它似乎可能与 xcode 一起安装?那正确吗?
谢谢您的帮助
docker - docker-compose .env 与 direnv .envrc
我们已经使用direnv很长一段时间来在特定文件夹中自动加载环境变量。从版本 3 开始,docker-compose 似乎支持 .env 文件。
direnv 使用的.envrc
文件使用export
:
export NODE_ENV=development
使用与 docker-compose 相同的文件似乎不起作用,只是没有export
我得到变量的值。
NODE_ENV=development
关于如何将其统一为单个.env
或.envrc
文件或 direnv 的替代方案的任何想法?
git - 使用动态签名密钥签署 Github 提交
我有一个与 2 个电子邮件地址(个人 + 工作)相关联的 Github 帐户。我只能签署来自一个帐户的提交,git config --global user.signingkey MySigningKey
因为密钥与一封电子邮件相关联。
我正在使用direnv提交使用不同的电子邮件,具体取决于我所在的目录,它可以使用环境变量设置 .envrc ,例如export GIT_COMMITTER_EMAIL=someemail@gmail.com
. 我想知道是否有类似的解决方案来定义动态签名密钥
direnv - 停止 direnv 在加载时显示所有环境变量
我已经direnv
安装了,我想知道是否有办法阻止它显示它加载的所有环境变量?它当前显示的输出行是:
我对第一行显示很好,但是由于我的第二行中有大约 50 个变量,所以每次进入目录时都显示很多变量有点烦人。
python - 使用 direnv 激活 virtualenv 不会激活 virtualenv
当我切换到目录时,我正在使用 direnv 来获取我的 virtualenv。
.envrc
当我将目录更改为时,/project
我得到输出:
它将 env 目录添加到我的 PATH 环境变量中,因此当我运行which python
并且which pip
都指向我env
目录中的 python 和 pip 时
然而,它似乎并没有source env/bin/activate
像我期望的那样运行。我希望它通过将 virtualenv 名称 (env) 添加到我的 CLI 提示符并授予对deactivate
命令的访问权限来激活我的 virtualenv,但这两种情况都不会发生。我对 direnv 和 virtualenv 的工作方式有什么误解吗?我是 python 新手,所以我不确定是否有现有的工具可以做这样的事情。
python-3.x - 使用 UWSGI、Nginx、direnv 和 systemd 部署 Flask APP
我使用 FLASK 创建了一个 API,我试图通过创建 systemd 服务将其部署在 linux 服务器上。
我已经使用 direnv 为应用程序设置输入参数,例如数据库连接。下面是文件的样子:
uwsgi 配置如下:
systemd 文件具有以下条目:
每当我尝试在浏览器上访问服务时,我的 uwsgi 日志中都会出现以下错误:
--- 未找到 python 应用程序,检查您的启动日志是否有错误 --- [pid: 23791|app: -1|req: -1/3] 192.168.9.180 () {44 vars in 719 bytes} [10 月 11 日星期四14:35:09 2018] GET / => 在 0 毫秒内生成 21 个字节(HTTP/1.1 500) 83 个字节中的 2 个标头(1 个在核心 0 上开关)
我的理解是 systemd 文件中的 ExecStart 命令无法调用 direnv 设置变量,因此我添加了 ExecStartPre 条目,但似乎不起作用。
任何提示/想法表示赞赏。
注意:当我从我的 python 虚拟环境中通过命令行运行 uwsgi 时,可以无错误地访问该应用程序:
uwsgi --socket 0.0.0.0:5000 --protocol=http -w app:app
macos - 为什么我无法在 macOS 上更改环境变量 $USERNAME?
我想做的事
怎么了
我尝试了什么
- 我尝试使用:
sudo
...; - 我尝试使用:
unset USERNAME
。
有用的注意事项
操作系统:macOS Mojave 10.14
我在用
zsh
问题之前我做了什么
direnv
我能够使用(https://github.com/direnv/direnv )多次更改我的环境变量,并且一切正常。
我能够在.envrc
. 然后,我遇到了这个问题...
解决方案
https://unix.stackexchange.com/questions/483469/cannot-change-the-environment-variable
bash - gcloud:是否可以根据当前文件夹更改默认项目?
我正在处理几个 gcloud 项目,我厌倦了--project XYZ
每次需要调用命令时都必须输入,或者更糟糕的是,如果我忘记添加命令,则在错误的项目上执行命令。