问题标签 [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.
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
但我仍然一次又一次地得到同样的错误。
erlang - rebar erlang包mnesia动态复制
问题陈述
我使用 Rebar3 创建了一个 Erlang 包。它是一个 tar 球,只需将其放入所需的操作系统并在启动节点后即可启动。所以同样明智的是,在两个不同的 linux 盒子中有两个相同类型的节点。那些不是 mnesia 复制的,我如何制作然后复制?
如果其他节点是完全空的模式,mnesia 模块中的这个函数就可以了,但我不是这种情况。
请让我知道我该如何解决这个问题?
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 ranch
and mix deps.update ranch
,它会列出以下未更改的依赖项:
这样牧场就编译好了。但是当我mix ecto.create
再次运行时,我得到了关于无法编译依赖项的相同错误:牧场。
我做了一个互联网搜索,看看是否有其他人有同样的问题。有人遇到的每个问题都mix ecto.create
涉及创建数据库用户。没有其他人对牧场有任何疑问。
我必须做些什么才能使启动并运行教程正常运行?
erlang - 使用 rebar3 构建的 Erlang 应用程序使用单核
我正在部署一个使用 rebar3 构建的在 erlang 上编写的应用程序。当我运行它时,它使用的是 CPU 的单核。我应该怎么做才能让它使用所有的核心?谢谢
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-management和https://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.
erlang - -include_lib 找不到我的库
我创建了一个这样的项目:
结构如下所示:
现在我想将 foo.hrl 包含在barlib.erl
:
编译给出:
当我删除-include_lib
指令并调用时,rebar3 shell
我可以检索code:lib_dir(foo)
并code:lib_dir(bar)
这对我来说看起来不错:
那么,为什么 include_lib 不起作用?
TIA
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 的。对此的任何帮助将不胜感激。
erlang - Rebar3编译时如何添加额外的文件或目录?
目前我有一个 rebar3 项目,我想为我的应用程序配置使用另一个文件。appConfig.conf
配置文件在conf
目录下调用。我尝试使用相对路径访问配置文件,但是rebar3没有将conf目录放在目录下_build
,这会导致file not found
错误。
目录结构是这样的:
如何让 rebar3conf
在编译时考虑目录?
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,
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死了吗?