无法覆盖 rebar 生成的版本中的 vm.args

发布于 2024-10-31 12:04:29 字数 850 浏览 1 评论 0原文

我正在尝试覆盖使用 Rebar 制作的版本的配置。我想自动修改 vm.args 文件以使用 VM 的 -sname chat 参数,而不是默认的 -name [电子邮件受保护]

如果我理解正确的话,子目录 files 包含配置文件的版本,当我使用 rebar create-node nodeid=chat 时,这些配置文件将被复制到发布目录中。我没有强制覆盖,并且我已经使用我想要使用的值修改了文件中的版本。它没有成功发布。每当我重新创建版本时,它都会使用默认值覆盖文件 ./etc/vm.args 。我是否错误地使用了钢筋?

这是我一直在做的(在 Makefile 中)生成版本的操作:

gen-rel:
    rm -rf ./rel/*
    rebar create-node nodeid=chat
    rebar generate

start:
    ./rel/chat/bin/chat start

stop:
    ./rel/chat/bin/chat stop

ping:
    ./rel/chat/bin/chat ping

rebuild: stop compile gen-rel start ping

PS:这是我应该如何使用 rebar 进行构建和调试的吗?我有另一个节点想要连接到此节点,并且我认为创建和运行版本是使我的版本可访问的最快且最简单的方法...

I'm trying to override the configuration of a release made using Rebar. I'd like to automatically modify the vm.args file to use an -sname chat parameter to the VM, rather than the default -name [email protected].

If I understand it correctly, the subdirectory files contains versions of the configuration files that will be copied into a release directory when I use rebar create-node nodeid=chat. I am not forcing an overwrite, and I've modified the version in files with the values I want to use. It doesn't make it through to the release. Whenever I recreate the release, it overwrites the file ./etc/vm.args with default values. Am I using rebar incorrectly?

Here's what I've been doing (in a Makefile) to generate the release:

gen-rel:
    rm -rf ./rel/*
    rebar create-node nodeid=chat
    rebar generate

start:
    ./rel/chat/bin/chat start

stop:
    ./rel/chat/bin/chat stop

ping:
    ./rel/chat/bin/chat ping

rebuild: stop compile gen-rel start ping

PS: Is this how I'm supposed to be building and debugging using rebar? I have another node that I want to connect to this with, and I assumed that creating and running the release is the quickest and easiest way to get my release reachable...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜雨飘雪 2024-11-07 12:04:29

create-node rebar 子命令只能运行一次,而不是每次generate 之前运行。如果您从 gen-rel make 目标中删除 create-node 行并使用您的覆盖编辑 rel/files/vm.args 文件,那么您应该会发现生成的版本现在包含您的覆盖。

回顾步骤:

  1. 从 make 文件中删除 rebar create-node nodeid=chat 行(只需运行一次)。
  2. 使用您的覆盖更新 rel/files/vm.args 文件。
  3. 运行make重建
  4. 在丢失之前将 rel/files 覆盖更改提交到 SCM/VCS 存储库中;)

HTH

The create-node rebar subcommand should only be run once, rather than every time before generate. If you remove create-node line from your gen-rel make target and edit the rel/files/vm.args files with your overrides then you should find the generated release will now contain your overrides.

Recap steps:

  1. Remove rebar create-node nodeid=chat line from your make file (just run it once).
  2. Update the rel/files/vm.args file with your override(s).
  3. Run make rebuild.
  4. Commit your rel/files override changes into your SCM/VCS repository before you lose them;)

HTH

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文