[Fix] `nvm_get_download_slug`: better architecture selection for M1 Macs

If the node version is below 16.0.0 then nvm will select x86_64 architecture, else arm64 architecture.
Ankit Kumar 2021-11-21 15:59:39 +05:30 committed by Jordan Harband
parent 4856407d26
commit 328dd5004e
No known key found for this signature in database
GPG Key ID: 9F6A681E35EF8B56
2 changed files with 10 additions and 0 deletions

View File

@ -152,6 +152,8 @@ If the above doesn't fix the problem, you may try the following:
- For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576)
**Note** For Macs with the M1 chip, node started providing **arm64** arch darwin packages since v16.0.0. For earlier versions, there were only **darwin_x64** packages available but no **darwin_arm64**. If you are facing issues installing node using `nvm`, you may want to update to v16 or later.
#### Ansible
You can use a task:

8
nvm.sh
View File

@ -2093,6 +2093,14 @@ nvm_get_download_slug() {
fi
fi
# If node version in below 16.0.0 then there is no arm64 packages available in node repositories, so we have to install "x64" arch packages
# If running MAC M1 :: arm64 arch and Darwin OS then use "x64" Architecture because node doesn't provide darwin_arm64 package below v16.0.0
if nvm_version_greater '16.0.0' "${VERSION}"; then
if [ "_${NVM_OS}" = '_darwin' ] && [ "${NVM_ARCH}" = 'arm64' ]; then
NVM_ARCH=x64
fi
fi
if [ "${KIND}" = 'binary' ]; then
nvm_echo "${FLAVOR}-${VERSION}-${NVM_OS}-${NVM_ARCH}"
elif [ "${KIND}" = 'source' ]; then