Skip to content

install,windows: symlink iojs -> node? #140

Description

@bnoordhuis

Per today's TC meeting, we're going to rename the binary to iojs and ln -s iojs node on install, provided there isn't already a binary with that name in the target directory.

Symlinks on Windows require elevated privileges and are therefore probably not an option. What to do? I see two options:

  1. Only install iojs, no symlink. Least amount of effort.
  2. Provide a stub node.exe or node.cmd (if that works) that executes iojs.
  3. Something else - but what?

Input welcome.

/cc @domenic @piscisaureus

Activity

  1. domenic commented on Dec 10, 2014

    @domenic
    Contributor

    For reasons @piscisaureus probably understands better than me (I think PATH_EXT is involved?), the stub node.exe (not node.cmd) will give the most seamless experience. That is what Git does as of ~1.8 on Windows, if I recall.

  2. gkatsev commented on Dec 10, 2014

    @gkatsev

    Windows, starting with Vista, supports actual symlinks. But one of the other solutions is probably best if windows XP support is needed.

  3. domenic commented on Dec 10, 2014

    @domenic
    Contributor

    @gkatsev without elevated privileges?

  4. gkatsev commented on Dec 10, 2014

    @gkatsev

    @domenic elevated privileges are needed for writing to privileged areas like C:/Program Files et al, but otherwise, doesn't require extra privileges.

  5. piscisaureus commented on Dec 11, 2014

    @piscisaureus
    Contributor

    @gkatsev If wish you were right but you are not. On windows creating symlinks always requires elevation.

  6. gkatsev commented on Dec 11, 2014

    @gkatsev

    Interesting, I was certain it didn't require elevation. I just tried it just to be sure and it does. That really is too bad.

  7. kkoopa commented on Dec 11, 2014

    @kkoopa

    I posted in that other thread, but if this is more on topic, I'll repost it:

    NAN requires executing 'node' to find the location of the header. Windows compatibility is the main source of problems when it comes to using multiple alternative names. nodejs/nan#70

  8. rstacruz commented on Dec 15, 2014

    @rstacruz

    -1 on this. io.js looks like it will have some breaking API changes from node.js, which means cross-compatibility of io.js and node.js apps won't always be 100% guaranteed. having a node symlink by default may hold progress back.

  9. kessler commented on Dec 21, 2014

    @kessler

    @bnoordhuis @domenic @piscisaureus it is quite common for installers to require elevation on windows, why not just do that?

  10. bnoordhuis commented on Dec 22, 2014

    @bnoordhuis
    MemberAuthor

    Short update: after some discussion, it got clear that it's not really possible to reliably detect if an existing install was done by joyent/node, iojs or a mashup of the two (e.g. an iojs install that got scribbled over by joyent/node.) The tentative conclusion is that we are not going to try and simply trust that the user knows what s/he is doing.

  11. added this to the milestone on Dec 30, 2014
  12. geek commented on Jan 9, 2015

    @geek
    Member

    Instead of iojs why not just io. In this day and age do we really need the js... Facebook vs The Facebook

  13. YurySolovyov commented on Jan 9, 2015

    @YurySolovyov

    @geek it was mentioned earlier that io already conflicts with some programming languages

  14. geek commented on Jan 9, 2015

    @geek
    Member

    For the package name iojs makes sense, but for the bin it should just be io.

    Let those who want to install the io language binary and the iojs binary sort out the conflict.... all 5 of them.

  15. rvagg commented on Jan 12, 2015

    @rvagg
    Member

    Windows installers and binaries are being uploaded in the nightlies now but npm doesn't work obviously because there is no node so they are hard to test

  16. richorama commented on Jan 12, 2015

    @richorama

    Some native modules do seem to require a node.exe file, so supplying that as a binary would be the only way of maintaining 100% compatiblity.

    For the record, adding the files node.cmd and node.exe.cmd containing the single line:

    @iojs.exe %*
    

    ...seems to work nicely for me in the more general case (i.e. npm works).

  17. Fishrock123 commented on Jan 19, 2015

    @Fishrock123
    Contributor

    @bnoordhuis can this be closed?

  18. added a commit that references this issue on Apr 6, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

questionIssues asking questions about Node.js.

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions