我试图在启用FIPS的Ubuntu 20.04上安装rabbitmq-server
,我看到erlang DEB默认包中没有编译它。我阅读了https://www.erlang.org/doc/apps/crypto/fips.html指南,并从源代码构建了带有--enable-fips
标志的erlang,它成功地构建和安装了/usr/local/lib/erlang/lib
中的所有库。
现在我尝试从源代码构建rabbitmq-server(因为DEB包依赖于我不想安装的erlang包),似乎找不到某个erlang包-eunit/include/eunit.hrl
:
$ make
make[1]: Entering directory '/home/ubuntu/rabbitmq-server/deps/rabbit_common'
make[1]: Leaving directory '/home/ubuntu/rabbitmq-server/deps/rabbit_common'
make[1]: Entering directory '/home/ubuntu/rabbitmq-server/deps/rabbit'
make[2]: Entering directory '/home/ubuntu/rabbitmq-server/deps/rabbit/apps/rabbitmq_prelaunch'
make[2]: Leaving directory '/home/ubuntu/rabbitmq-server/deps/rabbit/apps/rabbitmq_prelaunch'
make[2]: Entering directory '/home/ubuntu/rabbitmq-server/deps/rabbitmq_cli'
GEN escript/rabbitmqctl
Resolving Hex dependencies...
Resolution completed in 0.028s
Unchanged:
amqp 2.1.2
csv 2.4.1
dialyxir 0.5.1
json 1.4.1
observer_cli 1.7.4
parallel_stream 1.0.6
recon 2.5.3
stdout_formatter 0.2.4
temp 0.4.7
x509 0.8.7
==> stdout_formatter
Compiling 4 files (.erl)
stdout_formatter_table.erl:12:14: can't find include lib "eunit/include/eunit.hrl"
could not compile dependency :stdout_formatter, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile stdout_formatter --force", update it with "mix deps.update stdout_formatter" or clean it with "mix deps.clean stdout_formatter"
make[2]: *** [Makefile:95: escript/rabbitmqctl] Error 1
make[2]: Leaving directory '/home/ubuntu/rabbitmq-server/deps/rabbitmq_cli'
make[1]: *** [../../erlang.mk:4512: deps] Error 2
make[1]: Leaving directory '/home/ubuntu/rabbitmq-server/deps/rabbit'
make: *** [erlang.mk:4512: deps] Error 2
字符串
我尝试在eunit
-kernel/include/file.hrl
之前添加一个不同的erlang库加载,它成功地加载了那个。
还尝试了strace看看它看的地方,我发现它加载的要么是ERL_LIBS
或DIST_ERL_LIBS
变量,试图设置这两个,但同样的错误。
有什么想法吗
1条答案
按热度按时间6ojccjat1#
经过一天的调试,我发现这是因为我使用的是Elixir 15,没有使用最新的rabbitmq-server,我使用的是3.11.9,这是不兼容的。
出于生产的原因,我不得不使用3. 11. 9,所以我把酏剂降级到14,它起作用了。