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_elixir
requires Make and GCC. Easy to correct by installing thebuild-essential
package on Debian. - Compilation of
fast_html
requires CMake. Easy to correct by installing thecmake
package 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?