Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EXDEV: cross-device link not permitted #1

Closed
tunnckoCore opened this issue Aug 15, 2019 · 7 comments
Closed

EXDEV: cross-device link not permitted #1

tunnckoCore opened this issue Aug 15, 2019 · 7 comments

Comments

@tunnckoCore
Copy link

The error is happening no matter the chosen node version.

❯ nve 12 foo.js
EXDEV: cross-device link not permitted, rename '/tmp/get-node-12.8.0265305VEGYnMd8ahw' -> '/home/charlike/.cache/nve/12.8.0/node'
❯ nve 10 foo.js
EXDEV: cross-device link not permitted, rename '/tmp/get-node-10.16.226957Vjk86vu96oy0' -> '/home/charlike/.cache/nve/10.16.2/node'

I only have one SSD on the machine which is ArchLinux with Linux kernel 4.19.

I usually use nvm, is it counts as "global nodejs install"? I don't think so. That's why I also installed globally nodejs through AUR (which seems to be v11.15).

Btw, are we able to provide --require hook? That would be insanely cool!

edit: Ha, interesting auto-labeler. What you are using on that repo? Doesn't seem like a bot, because it uses the author? Or is it already builtin within GitHub when using issue/pr templates?

@ehmicky
Copy link
Owner

ehmicky commented Aug 15, 2019

Hi @tunnckoCore, thanks for reporting this issue.

You can specify any Node CLI flags, including --require. nve VERSION ... is simply forwarding to node ....

The label is assigned thanks to GitHub issue templates.

Installing Node either through nvm or AUR counts as "global Node.js install".

Your problem is coming from this:

  • when you use nve with a Node.js version for the first time, the Node.js binary is downloaded from nodejs.org
  • this is downloaded to your temporary directory
  • once the download is completed, the file is moved (i.e. renamed) to your global cache directory (e.g. /home/ehmicky/.cache/nve)

The reason this is done like this is to prevent leaving half-downloaded Node.js binaries in case you interrupt nve using CTRL-C (for example). Relevant code is in the get-node dependency, so I'm transferring the issue there.

Linux does not allow using rename for files between different partitions, creating that error. I'm going to work out a fix.

@ehmicky ehmicky transferred this issue from ehmicky/nve Aug 15, 2019
@ehmicky ehmicky reopened this Aug 15, 2019
@ehmicky
Copy link
Owner

ehmicky commented Aug 15, 2019

This should be fixed in nve@1.1.5. Could you please confirm it now works?

@tunnckoCore
Copy link
Author

Cool, thanks. I'll try later today.

@ehmicky ehmicky changed the title EXDEV: cross-device link not permitted, please rename EXDEV: cross-device link not permitted Aug 16, 2019
@ehmicky
Copy link
Owner

ehmicky commented Aug 20, 2019

Is it working now?

@tunnckoCore
Copy link
Author

Seems okay, yea. Thanks and sorry for the delay. :)

@ehmicky
Copy link
Owner

ehmicky commented Nov 30, 2019

@all-contributors please add @tunnckoCore for reporting this bug!

@allcontributors
Copy link
Contributor

@ehmicky

I've put up a pull request to add @tunnckoCore! 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants