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,

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/elixir-lang-core/2250d5e9-b996-4b1a-ad5a-d6531981411bn%40googlegroups.com.

Reply via email to