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

Failed to install node 14 darwin-arm64 version #3148

Open
senkorl opened this issue Jul 16, 2023 · 25 comments
Open

Failed to install node 14 darwin-arm64 version #3148

senkorl opened this issue Jul 16, 2023 · 25 comments
Labels
installing node Issues with installing node/io.js versions. needs followup We need some info or action from whoever filed this issue/PR.

Comments

@senkorl
Copy link

senkorl commented Jul 16, 2023

Operating system and version:

macos 13.4.1 (arm64)

nvm debug output:

nvm --version: v0.39.3
$TERM_PROGRAM: iTerm.app
$SHELL: /bin/zsh
$SHLVL: 1
whoami: 'ato'
${HOME}: /Users/ato
${NVM_DIR}: '${HOME}/.nvm'
${PATH}: ${HOME}/.composer/vendor/bin:/opt/homebrew/opt/go@1.16/bin:${HOME}/gopath16/bin:${HOME}/istio-1.15.0/bin:/opt/homebrew/opt/mysql-client/bin:${NVM_DIR}/versions/node/v18.16.1/bin:${HOME}/.composer/vendor/bin:/opt/homebrew/opt/go@1.16/bin:${HOME}/gopath16/bin:${HOME}/istio-1.15.0/bin:/opt/homebrew/opt/mysql-client/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
$PREFIX: ''
${NPM_CONFIG_PREFIX}: ''
$NVM_NODEJS_ORG_MIRROR: ''
$NVM_IOJS_ORG_MIRROR: ''
shell version: 'zsh 5.9 (x86_64-apple-darwin22.0)'
uname -a: 'Darwin 22.5.0 Darwin Kernel Version 22.5.0: Thu Jun 8 22:22:20 PDT 2023; root:xnu-8796.121.3~7/RELEASE_ARM64_T6000 arm64'
checksum binary: 'shasum'
OS version: macOS 13.4.1 (c) 22F770820d
awk: /usr/bin/awk, awk version 20200816
curl: /usr/bin/curl, curl 7.88.1 (x86_64-apple-darwin22.0) libcurl/7.88.1 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.11 nghttp2/1.51.0
wget: /opt/homebrew/bin/wget, GNU Wget 1.21.4 在 darwin22.4.0 上编译。
sed: /usr/bin/sed
cut: /usr/bin/cut
basename: /usr/bin/basename
rm: /bin/rm
mkdir: /bin/mkdir
xargs: /usr/bin/xargs
git: /opt/homebrew/bin/git, git version 2.41.0
ls: grep:: No such file or directory
grep: grep: aliased to grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn,.idea,.tox} (grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn,.idea,.tox}), grep (BSD grep, GNU compatible) 2.6.0-FreeBSD
nvm current: v18.16.1
which node: ${NVM_DIR}/versions/node/v18.16.1/bin/node
which iojs: iojs not found
which npm: ${NVM_DIR}/versions/node/v18.16.1/bin/npm
npm config get prefix: ${NVM_DIR}/versions/node/v18.16.1
npm root -g: ${NVM_DIR}/versions/node/v18.16.1/lib/node_modules

nvm ls output:

       v10.24.1
      v12.22.12
       v16.20.1
->     v18.16.1
default -> lts/* (-> v18.16.1)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v18.16.1) (default)
stable -> 18.16 (-> v18.16.1) (default)
lts/* -> lts/hydrogen (-> v18.16.1)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1
lts/erbium -> v12.22.12
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.1
lts/hydrogen -> v18.16.1

How did you install nvm?

brew install nvm, homebrew

What steps did you perform?

nvm install 14

What happened?

Downloading and installing node v14.21.3...
Downloading https://nodejs.org/dist/v14.21.3/node-v14.21.3-darwin-arm64.tar.xz...
curl: (22) The requested URL returned error: 404

Binary download from https://nodejs.org/dist/v14.21.3/node-v14.21.3-darwin-arm64.tar.xz failed, trying source.
grep: /Users/ato/.nvm/.cache/bin/node-v14.21.3-darwin-arm64/node-v14.21.3-darwin-arm64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.

What did you expect to happen?

download success

Is there anything in any of your profile files that modifies the PATH?

no

If you are having installation issues, or getting "N/A", what does curl -I --compressed -v https://nodejs.org/dist/ print out?

*   Trying 104.20.23.46:443...
* Connected to nodejs.org (104.20.23.46) port 443 (#0)
* ALPN: offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=*.nodejs.org
*  start date: Feb  3 00:00:00 2023 GMT
*  expire date: Mar  5 23:59:59 2024 GMT
*  subjectAltName: host "nodejs.org" matched cert's "nodejs.org"
*  issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA
*  SSL certificate verify ok.
* using HTTP/2
* h2h3 [:method: HEAD]
* h2h3 [:path: /dist/]
* h2h3 [:scheme: https]
* h2h3 [:authority: nodejs.org]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* h2h3 [accept-encoding: deflate, gzip]
* Using Stream ID: 1 (easy handle 0x11f80c600)
> HEAD /dist/ HTTP/2
> Host: nodejs.org
> user-agent: curl/7.88.1
> accept: */*
> accept-encoding: deflate, gzip
>
< HTTP/2 200
HTTP/2 200
< date: Sun, 16 Jul 2023 17:20:26 GMT
date: Sun, 16 Jul 2023 17:20:26 GMT
< content-type: text/html
content-type: text/html
< cache-control: public, max-age=14400, s-maxage=14400
cache-control: public, max-age=14400, s-maxage=14400
< last-modified: Sun, 16 Jul 2023 16:05:20 GMT
last-modified: Sun, 16 Jul 2023 16:05:20 GMT
< cf-cache-status: HIT
cf-cache-status: HIT
< age: 4506
age: 4506
< vary: Accept-Encoding
vary: Accept-Encoding
< strict-transport-security: max-age=31536000; includeSubDomains; preload
strict-transport-security: max-age=31536000; includeSubDomains; preload
< x-content-type-options: nosniff
x-content-type-options: nosniff
< server: cloudflare
server: cloudflare
< cf-ray: 7e7bea75e8de3505-NRT
cf-ray: 7e7bea75e8de3505-NRT
< content-encoding: gzip
content-encoding: gzip

<
* Connection #0 to host nodejs.org left intact
@senkorl senkorl changed the title install fail node 14 version by darwin-arm64 Failed to install node 14 darwin-arm64 version Jul 16, 2023
@ljharb
Copy link
Member

ljharb commented Jul 16, 2023

nvm is not supported when installed from homebrew (as the brew formula should have told you). Please remove it and install it properly with the install script in the readme.

The issue tho is that node 14 doesn’t have any arm64 builds, so you’ll have to use Rosetta.

@ljharb ljharb closed this as completed Jul 16, 2023
@senkorl
Copy link
Author

senkorl commented Jul 16, 2023

nvm is not supported when installed from homebrew (as the brew formula should have told you). Please remove it and install it properly with the install script in the readme.

The issue tho is that node 14 doesn’t have any arm64 builds, so you’ll have to use Rosetta.

thank you for its work. emmm, I have a small doubt, Why is the link for downloading version 14 not x86 but arm64? and I tried to install version 10 and its link was x86.

@ljharb
Copy link
Member

ljharb commented Jul 16, 2023

Hmm, node 14 does seem to have a darwin-x64 version https://nodejs.org/dist/latest-v14.x/

What's the full output from nvm install 14 on a non-rosetta terminal?

@ljharb ljharb reopened this Jul 16, 2023
@ljharb ljharb added installing node Issues with installing node/io.js versions. needs followup We need some info or action from whoever filed this issue/PR. labels Jul 16, 2023
@senkorl
Copy link
Author

senkorl commented Jul 16, 2023

Hmm, node 14 does seem to have a darwin-x64 version https://nodejs.org/dist/latest-v14.x/

What's the full output from nvm install 14 on a non-rosetta terminal?

only version 14 is happend. other older versions are download version x86.

Downloading and installing node v14.21.3...
Downloading https://nodejs.org/dist/v14.21.3/node-v14.21.3-darwin-arm64.tar.xz...
curl: (22) The requested URL returned error: 404

Binary download from https://nodejs.org/dist/v14.21.3/node-v14.21.3-darwin-arm64.tar.xz failed, trying source.
grep: /Users/ato/.nvm/.cache/bin/node-v14.21.3-darwin-arm64/node-v14.21.3-darwin-arm64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.

@ljharb
Copy link
Member

ljharb commented Jul 16, 2023

odd - that URL shouldn't 404 - you can see it right here: https://nodejs.org/dist/v14.21.3/

You're not using a mirror, so it should really be working.

@senkorl
Copy link
Author

senkorl commented Jul 16, 2023

odd - that URL shouldn't 404 - you can see it right here: https://nodejs.org/dist/v14.21.3/

You're not using a mirror, so it should really be working.

this site (https://nodejs.org/dist/v14.21.3/) not found node-v14.21.3-darwin-arm64.tar.xz. but it appeared when i input nvm install 14

@ljharb
Copy link
Member

ljharb commented Jul 16, 2023

ah, that's true, that means there isn't a darwin arm64 build.

Turns out you can compile node 14 on darwin arm64, but there's no binary build until node 16. Which means that nvm install 14 should fail to find the binary, and then attempt to compile the source. Does it not?

@senkorl
Copy link
Author

senkorl commented Jul 17, 2023

ah, that's true, that means there isn't a darwin arm64 build.

Turns out you can compile node 14 on darwin arm64, but there's no binary build until node 16. Which means that nvm install 14 should fail to find the binary, and then attempt to compile the source. Does it not?

Yes, its. since this binary package does not actually exist, this is obviously an error. Who caused this error? node or nvm?

@senkorl
Copy link
Author

senkorl commented Jul 17, 2023

It may be that the official list of API data exposed by node has arm64, but it is not

@ljharb
Copy link
Member

ljharb commented Jul 17, 2023

It's not actually a problem - it's just that nvm doesn't have a hardcoded special case for node 14 + darwin + arm64, so it tries to find the binary, fails correctly, and then falls back to the source.

@senkorl
Copy link
Author

senkorl commented Jul 18, 2023

It's not actually a problem - it's just that nvm doesn't have a hardcoded special case for node 14 + darwin + arm64, so it tries to find the binary, fails correctly, and then falls back to the source.

i know. this is not smooth in the process, and at least there will be no more issues to solve this problem

@ljharb
Copy link
Member

ljharb commented Jul 18, 2023

I’m not sure what’s not smooth about it - the output is usually ignored unless the command fails.

@LeonardoRick
Copy link

I'm facing the same problem and not being able to download node 14 using nvm. Does anyone knows a palliative solution while this bug is not fixed?

@ljharb
Copy link
Member

ljharb commented Jan 8, 2024

@LeonardoRick run a terminal in rosetta mode and it should work. also make sure youre on latest nvm.

@LeonardoRick
Copy link

@ljharb Thanks! I'll try that. I managed to install the 14 versions checking out to nvm version 0.39.1

@danny-faith
Copy link

@ljharb Thanks! I'll try that. I managed to install the 14 versions checking out to nvm version 0.39.1

I'm on nvm version 0.39.7. Did you also go back in nvm versions to get this to work?

@john1625b

This comment was marked as outdated.

@michaelryancaputo
Copy link

michaelryancaputo commented May 21, 2024

@ljharb Thanks! I'll try that. I managed to install the 14 versions checking out to nvm version 0.39.1

This seems to have worked for me as well.

A colleague mentioned that 0.39.7 worked for them as well.

@xunWuKong
Copy link

Can be executed at the terminal: arch -x86_64 zsh

Then execute it again:nvm install v14.21.3

Now, you can see the prompt for successful installation
image

@xunWuKong

This comment was marked as resolved.

@dvag-lukas-rybacki
Copy link

dvag-lukas-rybacki commented Jun 26, 2024

Is there any solution for this? I'm using the setup-node action and it still fails with message: Unable to find Node version '14.x' for platform darwin and architecture arm64. Even with a fix version of 14.21.3

@ljharb
Copy link
Member

ljharb commented Jun 26, 2024

@dvag-lukas-rybacki setup-node doesn’t use nvm, afaik. I use ljharb/actions/node/install personally, which uses nvm.

@dvag-lukas-rybacki
Copy link

@ljharb looks like the job is using nvm or did i missunderstand something? https://github.com/actions/setup-node/blob/main/.github/workflows/versions.yml#L48

@ljharb
Copy link
Member

ljharb commented Jun 27, 2024

@dvag-lukas-rybacki oh cool, i didn't realize. it'd be important that it uses the latest version of nvm tho; older ones definitely will have trouble in this scenario.

@usama831
Copy link

usama831 commented Jul 10, 2024

I encountered the same issue. I resolved it by downloading binaries from https://nodejs.raccoon-tw.dev/ and then using the following commands:

mkdir -p ~/.nvm/versions/node/v14.17.1
tar -xJf node-v14.17.1-darwin-x64.tar.xz -C ~/.nvm/versions/node/v14.17.1 --strip-components=1
nvm use 14.17.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
installing node Issues with installing node/io.js versions. needs followup We need some info or action from whoever filed this issue/PR.
Projects
None yet
Development

No branches or pull requests

9 participants