package mix release works, port doesn't? (and neither is self-contained)
Date: Wed, 04 May 2022 11:06:02 UTC
Hi, I am trying to build a package from a mix release. My first attempt used pkg-create, and it was successful. I can run `make package`, install the package, and then run `ex_ample start_iex`. Here’s that Makefile: https://github.com/patmaddox/ex_ample/blob/5814a1bb921ef3c045852b375fa54bc7b93c0565/Makefile. It does require me to have an erlang runtime installed to run it, which was surprising. The elixir docs say that mix releases don’t need erlang or elixir to run them, they’re supposed to be self-contained. Then I decided to try building a port with poudriere. I successfully built the package, but it won’t run. Running `ex_ample start_iex` fails with an error about missing /usr/local/lib/erlang24/bin/erl as well. When I _do_ install erlang-runtime24 (or any erlang package), `ex_ample start_iex` crashes: {"init terminating in do_boot",{load_failed,[supervisor,proc_lib,lists,logger_simple_h,logger_config,logger_backend,logger_server,logger_filters,logger,kernel,heart,gen_server,gen_event,gen,file_io_server,file_server,filename,file,ets,error_logger,erl_parse,erl_lint,erl_eval,code_server,code,application_master,application_controller,application,error_handler]}}. So my questions are: 1. What is going on with poudriere that’s different, where the package runs fine but the built port crashes? 2. How do I fix it? 3. Why do the package and port require an erlang runtime to run, if I’m using mix release? Pat