reasonml / reason-cli

Globally installable Reason toolchain.
MIT License
291 stars 23 forks source link

installing reason-cli 3.0.5 fails on Linux with "cross-device link not permitted" #65

Closed zploskey closed 6 years ago

zploskey commented 6 years ago

Installing from the 3.0.5 tarball fails with:

EXDEV: cross-device link not permitted, rename '/tmp/releaseySS3yf/opam__slash__base_bytes-0.0.0-base-3e6fd7e7' -> '/home/zach/.node/lib/node_modules/reason-cli/3________________________________________/i/opam__slash__base_bytes-0.0.0-base-3e6fd7e7'
Error: EXDEV: cross-device link not permitted, rename '/tmp/releaseySS3yf/opam__slash__base_bytes-0.0.0-base-3e6fd7e7' -> '/home/zach/.node/lib/node_modules/reason-cli/3________________________________________/i/opam__slash__base_bytes-0.0.0-base-3e6fd7e7'
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! reason-cli@3.0.5 postinstall: `node ./bin/esy.js install-release`
npm ERR! Exit status 1

System information:

zach@znbk:~$ uname -a
Linux znbk.ploskey.com 4.15.3-300.fc27.x86_64 #1 SMP Tue Feb 13 17:02:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
zach@znbk:~$ npm version
{ npm: '5.6.0',
  ares: '1.10.1-DEV',
  cldr: '31.0.1',
  http_parser: '2.7.0',
  icu: '59.1',
  modules: '57',
  nghttp2: '1.25.0',
  node: '8.9.4',
  openssl: '1.0.2n',
  tz: '2017b',
  unicode: '9.0',
  uv: '1.15.0',
  v8: '6.1.534.50',
  zlib: '1.2.11' }
zploskey commented 6 years ago

This is a regression since 3.0.4, which installs without issue.

develop7 commented 6 years ago

Affects me too, attached yarn-error.log

zploskey commented 6 years ago

Could this have something to do with tmpfs? It's trying to rename from /tmp to somewhere on the filesystem.

develop7 commented 6 years ago

@zploskey actually it looks like it's trying to hardlink files between filesystems which is exactly my case: my /tmp is on / and the destination is on /home. Well it should handle this case correctly too.

zploskey commented 6 years ago

I thought as much. /tmp is frequently not a real disk or not on the same disk as other things on the system. This should just be a copy or the files should be stored somewhere that we can be reasonably sure is on the same filesystem.

zploskey commented 6 years ago

Presumably this is actually an issue with esy. CC @andreypopp

jordwalke commented 6 years ago

@zploskey It might have been, but we also changed a lot of other stuff like breaking out rtop into its own separate package, and I might have messed up the release on the Linux side. If you're around tonight, I have a new release candidate coming out tonight I'd love for people to try.

zploskey commented 6 years ago

This looks to be fixed in 3.1.0. :+1:

jordwalke commented 6 years ago

For the record I cut a release 3.1.0 to npm (not github release, not yet announced), with esy version 0.0.62.

develop7 commented 6 years ago

Nope, 3.1.0 doesn't work for me. First, the Linux release seems to be missing on both github and npm; the npm i -g reason-cli doesn't work for me in following way:

``` develop7@t-rex ~> npm i -g reason-cli /home/develop7/.npm/bin/ocamlmerlin-reason -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/ocamlmerlin-reason /home/develop7/.npm/bin/utop -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/utop /home/develop7/.npm/bin/refmt -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/refmt /home/develop7/.npm/bin/refmttype -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/refmttype /home/develop7/.npm/bin/ocamlmerlin -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/ocamlmerlin /home/develop7/.npm/bin/rtop -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/rtop /home/develop7/.npm/bin/reopt -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/reopt /home/develop7/.npm/bin/rebuild -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/rebuild /home/develop7/.npm/bin/reactjs_jsx_ppx_v2 -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/reactjs_jsx_ppx_v2 /home/develop7/.npm/bin/reactjs_jsx_ppx_v3 -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/reactjs_jsx_ppx_v3 /home/develop7/.npm/bin/reason-cli-esy-sandbox -> /home/develop7/.npm/lib/node_modules/reason-cli/.bin/reason-cli-esy-sandbox > reason-cli@3.1.0-darwin postinstall /home/develop7/.npm/lib/node_modules/reason-cli > ./bin/esyBuildRelease bin install tar: Ignoring unknown extended header keyword 'LIBARCHIVE.creationtime' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.creationtime' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.creationtime' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.creationtime' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.creationtime' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.creationtime' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.creationtime' tar: Ignoring unknown extended header keyword 'SCHILY.dev' tar: Ignoring unknown extended header keyword 'SCHILY.ino' tar: Ignoring unknown extended header keyword 'SCHILY.nlink' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.creationtime' tar: Ignoring unknown extended header keyword 'SCHILY.dev' ...skipped thousands of these... opam__slash__camomile-0.8.7-d1052710: done ocaml-4.2.3004-490319bf: done opam__slash__ocamlfind-1.7.3--1-d98b7946: done + reason-cli@3.1.0-darwin added 1 package from 1 contributor in 40.545s develop7@t-rex ~> which rtop /home/develop7/.npm/bin/rtop develop7@t-rex ~> rtop /home/develop7/.npm/lib/node_modules/reason-cli/3_____________________________________/i/opam__slash__utop-2.1.0-5c44d02e/bin/utop-full: line 2: syntax error near unexpected token `$'\001\001C'' /home/develop7/.npm/lib/node_modules/reason-cli/3_____________________________________/i/opam__slash__utop-2.1.0-5c44d02e/bin/utop-full: line 2: `T�W%.7@IR[gt}���c(C' ```
jordwalke commented 6 years ago

@develop7 We haven't updated the docs or anything so it's unlikely you'd know the right link to use at the moment. Here it is:

npm install -g reason-cli@3.1.0-linux

Or for Mac:

npm install -g reason-cli@3.1.0-darwkn

As soon as we get enough people confirming that it works, we'll update all the docs.

csi-adziahel commented 6 years ago

@jordwalke ya, I've figured that after peeking at npm view reason-cli versions. Will try few hrs later.

Thanks!

develop7 commented 6 years ago

@jordwalke So the 3.1.0 it worked for me on both Mac OS and Linux!