问题标签 [rebar3]

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.

0 投票
2 回答
1082 浏览

erlang - Rebar3 安装失败

我正在尝试在 Ubuntu 16.04 上rebar3安装。linuxbrew

在我执行之后brew install rebar3

distutils.errors.CompileError:命令“gcc-5”失败,退出状态为 1 /home/linuxbrew/.linuxbrew/Cellar/gobject-introspection/1.56.0/share/gobject-introspection-1.0/Makefile.introspection:159:配方目标“Pango-1.0.gir”失败

尝试安装pango依赖项时会发生此错误。

我的$PATH/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/linuxbrew/.linuxbrew/bin

收到此错误后,我pango使用手动安装sudo apt-get install libghc-pango-dev

GCC 版本 - 5.4.0

内核 - 4.13.0-37

但我仍然一次又一次地得到同样的错误。

0 投票
0 回答
88 浏览

erlang - rebar erlang包mnesia动态复制

问题陈述

我使用 Rebar3 创建了一个 Erlang 包。它是一个 tar 球,只需将其放入所需的操作系统并在启动节点后即可启动。所以同样明智的是,在两个不同的 linux 盒子中有两个相同类型的节点。那些不是 mnesia 复制的,我如何制作然后复制?

如果其他节点是完全空的模式,mnesia 模块中的这个函数就可以了,但我不是这种情况。

请让我知道我该如何解决这个问题?

0 投票
1 回答
607 浏览

phoenix-framework - Phoenix:运行 mix ecto.create 编译 Ranch 依赖项时出错

我正在尝试浏览 Phoenix 框架站点上的 Up And Running 教程。我有以下设置:

  • macOS 10.14.5
  • 凤凰 1.4.6
  • 灵丹妙药 1.8.2
  • 二郎/OTP 22

我使用mix phx.new命令创建项目。系统提示我获取并安装依赖项。我打字Y。成功获取并安装了依赖项。

我转到我的项目目录并输入以下命令:

出现以下错误:

(混合)无法编译依赖项:牧场,“/Volumes/Macintosh HD/Users/mark/.mix/rebar3 bare compile --paths”/Code/hello/_build/dev/lib/*/ebin“”命令失败。

你可以用“mix deps.compile ranch”重新编译这个依赖,用“mix deps.update ranch”更新它或者用“mix deps.clean ranch”清理它

如果我运行,我会得到同样的错误mix phx.server

如果我运行mix deps.clean ranchand mix deps.update ranch,它会列出以下未更改的依赖项:

这样牧场就编译好了。但是当我mix ecto.create再次运行时,我得到了关于无法编译依赖项的相同错误:牧场。

我做了一个互联网搜索,看看是否有其他人有同样的问题。有人遇到的每个问题都mix ecto.create涉及创建数据库用户。没有其他人对牧场有任何疑问。

我必须做些什么才能使启动并运行教程正常运行?

0 投票
2 回答
76 浏览

erlang - 使用 rebar3 构建的 Erlang 应用程序使用单核

我正在部署一个使用 rebar3 构建的在 erlang 上编写的应用程序。当我运行它时,它使用的是 CPU 的单核。我应该怎么做才能让它使用所有的核心?谢谢

0 投票
1 回答
806 浏览

erlang - rebar3 安装插件失败

环境:rebar 3.6.0 on Erlang/OTP 21 Erts 10.0 Ubuntu 16.04
当我尝试安装 rebar3 插件(例如 rebar3_hex)时,它报告:

===> Package <<"rebar3_hex">> not found. Fetching registry updates and trying again... ===> Updating package registry... ===> Plugin rebar3_hex not available. It will not be used.

~/.config/rebar3/rebar.config我的: 中只有一行,如https://www.rebar3.org/docs/using-available-plugins#hex-package-managementhttps://github.com/tsloughter/rebar3_hex{plugins, [rebar3_hex]}.
中的建议。

我无法从谷歌、rebar3 文档和此处存在的问题获得更多有用的信息。

所以,我打开一个新问题来询问为什么以及如何解决它。

ps:我对rebar3使用proxychains,它报告|DNS-response| repo.hex.pm is 151.101.54.2
inet_gethost[10708]: WARNING:Malformed reply (header) from worker process 10709.

0 投票
1 回答
550 浏览

erlang - -include_lib 找不到我的库

我创建了一个这样的项目:

结构如下所示:

现在我想将 foo.hrl 包含在barlib.erl

编译给出:

当我删除-include_lib指令并调用时,rebar3 shell我可以检索code:lib_dir(foo)code:lib_dir(bar)

这对我来说看起来不错:

那么,为什么 include_lib 不起作用?

TIA

0 投票
2 回答
1613 浏览

erlang - 降级 Erlang/OTP 后加载/重新编译 Rebar 模块

我希望使用 erlang 客户端库与我的一个项目的 mqtt 代理进行通信。所以我使用 rebar3 的内置模板启动了一个应用程序,并添加了 emqttc 作为依赖项。由于erlang/otp 21 不支持 gen_logger(emqttc 依赖于 gen_logger)并且tuple_calls编译器选项不够,我不得不根据这篇文章降级到 erlang@20 。

现在降级 erlang 的问题是,rebar3 的命令(clean/compile/shell/report 等)都没有按预期工作,而且我以前用 rebar3 构建的项目无法编译,我看到这个错误消息:

=错误报告==== 21-Aug-2018::12:54:29 === 加载 /usr/local/bin/rebar3/rebar/ebin/rebar3.beam 失败:badfile escript:异常错误:未定义函数rebar3:main/1 在函数 escript:run/2 (escript.erl,第 759 行)中从 escript:start/1 调用中(escript.erl,第 277 行)在从 init 调用中:start_em/1 在从 init 调用中:do_boot /3

=错误报告==== 21-Aug-2018::12:54:29 === beam/beam_load.c(1863): 加载模块 rebar3 时出错:此 BEAM 文件是为更高版本的运行时编译的系统高于 20。要解决此问题,请使用 20 编译器重新编译此模块。(使用操作码 160;此仿真器最多支持 159。)

我已经卸载并重新安装了 rebar3,在网上查找了这个,但没有什么是明确的和特定于 rebar 的。对此的任何帮助将不胜感激。

0 投票
1 回答
361 浏览

erlang - Rebar3编译时如何添加额外的文件或目录?

目前我有一个 rebar3 项目,我想为我的应用程序配置使用另一个文件。appConfig.conf配置文件在conf目录下调用。我尝试使用相对路径访问配置文件,但是rebar3没有将conf目录放在目录下_build,这会导致file not found错误。

目录结构是这样的:

如何让 rebar3conf在编译时考虑目录?

0 投票
0 回答
193 浏览

erlang - Ejabberd no etc , sbin 文件夹后 sudo make install

因此,在安装所有依赖项后,我按照 ejabberd git repo 上给出的说明进行操作,(从源代码安装/构建它)

但是在 sudo make install 之后,一切都没有发生。

  • sudo make install
    这些命令将: 在 /etc/ejabberd/ 中安装配置文件 在 /lib/ejabberd/
    中安装 ejabberd 二进制文件、头文件和运行时文件
    安装管理脚本:/sbin/ejabberdctl
    在 /share/doc/ejabberd 中安装 ejabberd 文档/
    创建假脱机目录:/var/lib/ejabberd/
    创建日志文件目录:/var/log/ejabberd/

    *

然而,如果我运行 sudo ejabberdctl start ,它会启动,我也可以访问调试 shell,但是使用 sudo 会被拒绝访问,

注意: 1. 成功制作后,我收到警告:“WARN: Missing plugins: [rebar3_hex]”
2. 我正在使用 rebar3 v3.6.1,Erlang/OTP 21,ejabberd v18
3. 没有 etc 文件夹,所以也没有日志,
4.我可以在终端的任何地方使用 sudo ejabberdctl start,

0 投票
2 回答
172 浏览

git - 为什么我在 git 上出现错误,但在 rebar3 中却没有 hex deps

在我的 Erlang 项目中使用依赖项时,我多次遇到过这个问题,例如

{rabbit_common, "3.7.8"}

对比

{rabbit_common, ".*", {git, "https://github.com/rabbitmq/rabbitmq-common.git", {tag, "v3.7.8"}}

使用 git 时,我必须进入 lib 文件夹中的每个依赖项应用程序并在其上运行 make,而使用 hex 一切正常。

此外,当对我的应用程序进行 docker 化时,我发现出现错误

未找到版本

使用任何 git deps 时,但是当我全部切换到十六进制时,它工作正常。git为rebar3死了吗?