From dde04f9392f9f0958d06608290f293c71d4119c8 Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 8 Mar 2023 09:15:51 +0100 Subject: [PATCH] [Fix] recognize 32Bit docker container and use x86 arch --- nvm.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nvm.sh b/nvm.sh index 1b34df3803..8b5119b6e4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1885,6 +1885,7 @@ nvm_get_arch() { local HOST_ARCH local NVM_OS local EXIT_CODE + local LONG_BIT NVM_OS="$(nvm_get_os)" # If the OS is SunOS, first try to use pkgsrc to guess @@ -1901,6 +1902,7 @@ nvm_get_arch() { HOST_ARCH=ppc64 else HOST_ARCH="$(command uname -m)" + LONG_BIT="$(getconf LONG_BIT 2>/dev/null)" fi local NVM_ARCH @@ -1911,6 +1913,12 @@ nvm_get_arch() { *) NVM_ARCH="${HOST_ARCH}" ;; esac + # If running inside a 32Bit docker container the kernel still is 64bit + # change ARCH to 32bit if LONG_BIT is 32 + if [ "_${LONG_BIT}" = "_32" ] && [ "${NVM_ARCH}" = "x64" ]; then + NVM_ARCH="x86" + fi + # If running a 64bit ARM kernel but a 32bit ARM userland, # change ARCH to 32bit ARM (armv7l) if /sbin/init is 32bit executable if [ "$(uname)" = "Linux" ] \