Hi everyone,
The background story is like this, I install Termux from PlayStore on my non rooted Poco M6 Pro phone then I install Erlang and Elixir. I created a new Elixir project with command ```mix new hello_world```, then I CD to the directory then try to compile the project with ```mix compile``. The compilation failed with error like below.
```
~/.../elixir/hello_world $ mix compile
** (File.LinkError) could not create hard link from "/data/data/com.termux/files/usr/tmp/mix_lock/4JzyjFIskDOoiK7WEYxDnA/port_47507" to "/data/data/com.termux/files/usr/tmp/mix_lock/4JzyjFIskDOoiK7WEYxDnA/lock_1": permission denied
(mix 1.18.1) lib/mix/sync/lock.ex:201: Mix.Sync.Lock.grab_lock/3
(mix 1.18.1) lib/mix/sync/lock.ex:160: Mix.Sync.Lock.try_lock/4
(mix 1.18.1) lib/mix/sync/lock.ex:126: Mix.Sync.Lock.lock/2
(mix 1.18.1) lib/mix/sync/lock.ex:104: Mix.Sync.Lock.with_lock/3
(mix 1.18.1) lib/mix/task.ex:495: anonymous fn/3 in Mix.Task.run_task/5
(mix 1.18.1) lib/mix/tasks/compile.ex:135: Mix.Tasks.Compile.run/1
(mix 1.18.1) lib/mix/task.ex:495: anonymous fn/3 in Mix.Task.run_task/5
(mix 1.18.1) lib/mix/cli.ex:107: Mix.CLI.run_task/2
```
I tried to browse to directory ```/data/data/com.termux/files/usr/tmp/mix_lock/4JzyjFIskDOoiK7WEYxDnA``` and I can see the file port_47507, so I can be certain this is not a file writing issue.
Then I CD to directory ```/data/data/com.termux/files/usr/tmp/mix_lock/4JzyjFIskDOoiK7WEYxDnA``` then tried to issue the link command like below and received the error:
```
.../mix_lock/4JzyjFIskDOoiK7WEYxDnA $ ln port_47507 lock_1
ln: failed to create hard link 'lock_1' => 'port_47507': Permission denied
```
I seems his locking mechanism prevents the project to be compiled in environment without hardlink permission.
So I'm thinking, for short term solution will it better if there is an optional parameter to turn off this locking mechanism? And for the long term is there any other way to accomplish the locking mechanism without using hardlinks?
thank you very much,