openSUSE:打包 Erlang
Erlang 打包 是一个循序渐进的介绍,说明如何为 openSUSE openSUSE 构建服务 构建 Erlang 软件包。
Devel 项目
Erlang 包的开发项目是 devel:languages:erlang。
Erlang 宏
%erlang_dir
扩展为 %{_libdir}/erlang
%erlang_libdir
扩展为 %{_libdir}/erlang/lib
%__erl
将调用 Erlang 解释器 /usr/bin/erl
Rebar 宏
Rebar 是一个 Erlang 构建工具。它已被 rebar3 取代。但是,一些项目仍然使用旧版 Rebar。
%__rebar
将直接调用 /usr/bin/rebar 二进制文件。
%rebar
这是您将更常用到的宏。它会设置 CFLAGS、CXXFLAGS、FFLAGS 并调用 rebar。
%rebar_compile
将使用上述 %rebar 宏并使用 compile 调用它。
Rebar3
Rebar3 的问题在于它没有像旧版 Rebar 那样具有 SKIP_DEPS=true 选项。因此,它始终尝试通过互联网获取依赖项。这在构建服务中既不可能也不允许。
一种解决方案是删除锁定文件并将 deps 元组从构建文件中修补出来。
但是,我们正在与上游讨论如何使此过程更容易。请参阅
- https://github.com/erlang/rebar3/issues/1855
- https://github.com/erlang/rebar3/pull/2643
- https://github.com/erlang/rebar3/issues/1281
rebar3 维护者也在考虑添加一个 vendoring 选项(就像我们为例如 Rust 和 Go 打包所做的那样)