Arc Forumnew | comments | leaders | submitlogin
2 points by rocketnia 3902 days ago | link | parent

The error "Invalid cross-device link" happens if you're trying to move a file across partitions. Apparently sometimes people have set up their home directory in a separate partition, even without realizing it.[1] So I'm guessing you're in a situation like that.

Other languages seem to recover from this particular error and do a copy and unlink instead:

Python: https://mail.python.org/pipermail/python-list/2005-February/...

Ruby: http://stackoverflow.com/questions/403239/how-do-i-move-a-fi...

Racket's reference for 'rename-file-or-directory states that it can move files to other paths "on the same disk"[2], and it goes into detail about atomicity guarantees, so this behavior is probably by design.

So the way you can find resolution here might be:

- Somehow change what temp directory Arc uses.

- Put the Arc directory elsewhere on your filesystem.

- Somehow change your partitions so the home directory and temp directory are in the same one.

- We should probably update Arc to recover from this somehow. :)

---

[1] http://www.linuxquestions.org/questions/linux-newbie-8/inval... (Warning: This page has lots of ads, and there's some flaming with harsh language.)

[2] http://docs.racket-lang.org/reference/Filesystem.html



3 points by cooler 3901 days ago | link

Thanks you for your help.

1. "...So I'm guessing you're in a situation like that."

Yes,you are right.

2. "- Somehow change what temp directory Arc uses."

I don't know how to.

3. "- Somehow change your partitions so the home directory and temp directory are in the same one."

This worked.

BTW, I have tried the old arc3.1 version, but it didn't have the problem.

-----

2 points by akkartik 3901 days ago | link

For future reference, I figured out how to change the temp directory arc/racket uses:

  $ TMPDIR=~/tmp arc.sh
The TMPDIR must exist, otherwise racket will again fall back to defaults.

-----

1 point by akkartik 3902 days ago | link

Ack, accidental downvote. So the 'presence indicator' should really be 3.

-----