Closed
Description
Steps to reproduce:
cd
to a path on an external devicerustpkg install github.com/steveklabnik/hello
You should see a task failure. I dug a bit into the code and found the problem. Basically, when the environment variable TMPDIR
is not explicitly set, rustpkg
uses extra::tempfile::TempDir
to store temporary files. TempDir
by default operates in /tmp
.
Later, rustpkg
does fs::rename(&clone_target, local)
, in which clone_target
and local
are paths to different devices. libuv
(the default underlying IO library) seems unable to handle this case, therefore resulting in a "cross-device link not permitted" IO error. The same error can also be reproduced with Node, as described here.
Metadata
Metadata
Assignees
Labels
No labels