andreyuhai
Failed to load NIF library, symbol not found for libpostal
I am trying to install expostal in a new Elixir project in a container with alpine, and since libpostal exists as a package on alpine, I am just installing it.
❯ docker run --rm -it elixir:alpine sh
/ # apk add build-base libpostal-dev
/ # mix new foobar
# Add {:expostal, "~> 0.2.0"} to the deps.
/foobar # mix deps.get
/foobar # mix deps.compile
/foobar # iex -S mix
iex(1)> Expostal.par(TAB)
13:18:25.440 [warning] The on_load function for module Elixir.Expostal returned:
{{:badmatch,
{:error,
{:load_failed,
'Failed to load NIF library: \'Error relocating /foobar/_build/dev/lib/expostal/priv/expostal.so: libpostal_setup_parser: symbol not found\''}}},
[
{Expostal, :init, 0, [file: 'lib/expostal.ex', line: 13]},
{:code_server, :"-handle_on_load/5-fun-0-", 1,
[file: 'code_server.erl', line: 1317]}
]}
13:18:25.439 [error] Process #PID<0.202.0> raised an exception
** (MatchError) no match of right hand side value: {:error, {:load_failed, 'Failed to load NIF library: \'Error relocating /foobar/_build/dev/lib/expostal/priv/expostal.so: libpostal_setup_parser: symbol not found\''}}
(expostal 0.2.0) lib/expostal.ex:13: Expostal.init/0
(kernel 8.5) code_server.erl:1317: anonymous fn/1 in :code_server.handle_on_load/5
I’ve asked this on Elixir Slack and @LostKobraKai had suggested that the NIF compilation is the problem and I should compile it properly. However I am not sure how I would compile it properly so that it’d work on alpine.
Compiling from source and installing on ubuntu:latest and alpine:latest just worked fine. So it means there’s something with the expostal I think.
First Post!
dimitarvp
Not sure which version your Alpine is but maybe try upgrading MUSL?
apk upgrade musl
In any case please make sure you use a fairly modern Alpine version. It’s not a problem to use a non-Elixir based image and just add Erlang and Elixir to a normal Alpine Docker image.
If that doesn’t work maybe you need GNU libc compatibility:
apk add gcompat
But outside of that, not sure.
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









