I tried to install a fresh Mobilizon installation on a Debian machine.
I followed the steps on https://docs.joinmobilizon.org/administration/ but ran into a few dependencies issues:
- Compilation of
argon2_elixirrequires Make and GCC. Easy to correct by installing the
build-essentialpackage on Debian.
- Compilation of
fast_htmlrequires CMake. Easy to correct by installing the
cmakepackage on Debian.
So far, so good. But now compilation is failing on
ex_cldr_numbers. Full error message is:
== Compilation error in file lib/cldr/number/parse.ex == ** (FunctionClauseError) no function clause matching in Keyword.get/3 The following arguments were given to Keyword.get/3: # 1 nil # 2 :vsn # 3 nil Attempted function clauses (showing 1 out of 1): def get(keywords, key, default) when is_list(keywords) and is_atom(key) (elixir 1.10.4) lib/keyword.ex:201: Keyword.get/3 lib/cldr/number/parse.ex:169: (module) (stdlib 3.13.2) erl_eval.erl:680: :erl_eval.do_apply/6
Judging from https://github.com/elixir-cldr/cldr/issues/38 who had a similar error and the fact that CLDR manages locales, I’m guessing there’s something wrong with my locale on my Debian machine.
Line 169 of the
parse.ex file says:
decimal_version = Keyword.get(Application.spec(:decimal), :vsn) |> List.to_string
If I type
locale in the command prompt, I get the following:
LANG=en_CA.UTF-8 LANGUAGE= LC_CTYPE="en_CA.UTF-8" LC_NUMERIC=en_CA.UTF-8 LC_TIME=en_CA.UTF-8 LC_COLLATE="en_CA.UTF-8" LC_MONETARY=en_CA.UTF-8 LC_MESSAGES="en_CA.UTF-8" LC_PAPER=en_CA.UTF-8 LC_NAME=en_CA.UTF-8 LC_ADDRESS=en_CA.UTF-8 LC_TELEPHONE=en_CA.UTF-8 LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=en_CA.UTF-8 LC_ALL=
So I guess compilation dies because there is something wrong with my locale. Any idea what could it be and how I could fix it?