> So I run explicitly the second one:
>   ~/context-lmtx/bin/mtxrun --generate
> but I got the same error.

This is the wrong binary. As Hans said (and also what I wrote in my
message) is that you have to run the one in
~/context-lmtx/tex/texmf-linux-64/bin/
 
 
This shows that the wrong binary is being used. You are using the binary
in /home/sam/context-lmtx/bin when you should use
/home/sam/context-lmtx/tex/texmf-linux-64/bin.


I ran into a similar problem in the past because the installation script install.sh says the following, among other things:
"If you want to run ConTeXt everywhere, you need to adapt the path, like:

  [lmtx path]/bin:[lmtx path]/tex/texmf-linux-64/bin:[the rest of my path]"

Doing as suggested, when mtxrun is launched the first binary is used because  [lmtx path]/bin comes first in the PATH. My question is then how do you usually run mtxrun:
1) always writing the full path of the correct executable,
2) avoid putting [lmtx path]/bin in PATH,
3) putting [lmtx path]/bin _after_ [lmtx path]/tex/texmf-linux-64/bin in the PATH

I'm asking here because option 1 is correct but not very handy, while 2) and 3) are different from what the installer says and they seemed to give other problems when I tried them.

Thank you in advance,
LD