我在 AWS sagemaker 实例上,我正在尝试安装 NodeJS,以便可以使用 CDK 来部署应用程序。我正在使用
!curl -sL https://rpm.nodesource.com/setup_14.x |须藤-E bash- !sudo yum install -y nodejs
但是当我安装时,我不断收到以下错误(尝试了不同的版本 14、16 和 20):
Loaded plugins: dkms-build-requires, extras_suggestions, kernel-livepatch,
: langpacks, priorities, update-motd, versionlock
https://download.docker.com/linux/centos/2/x86_64/stable/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
neuron | 2.9 kB 00:00
297 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 2:20.12.0-1nodesource will be installed
--> Processing Dependency: glibc >= 2.28 for package: 2:nodejs-20.12.0-1nodesource.x86_64
--> Processing Dependency: libm.so.6(GLIBC_2.27)(64bit) for package: 2:nodejs-20.12.0-1nodesource.x86_64
--> Processing Dependency: libc.so.6(GLIBC_2.28)(64bit) for package: 2:nodejs-20.12.0-1nodesource.x86_64
--> Finished Dependency Resolution
Error: Package: 2:nodejs-20.12.0-1nodesource.x86_64 (nodesource-nodejs)
Requires: libm.so.6(GLIBC_2.27)(64bit)
Error: Package: 2:nodejs-20.12.0-1nodesource.x86_64 (nodesource-nodejs)
Requires: libc.so.6(GLIBC_2.28)(64bit)
Error: Package: 2:nodejs-20.12.0-1nodesource.x86_64 (nodesource-nodejs)
您似乎正在 SageMaker 中使用较旧的容器映像之一,这可能会导致兼容性问题。
当 Node 安装在 GLIBC 版本不满足 Node 最低要求的操作系统上时,通常会出现此错误。例如,Node v18 需要 GLIBC 版本 2.7 或更高版本。因此,尝试在使用较旧 GLIBC 版本的 Linux 操作系统上安装 Node v18.x 将导致此类错误。
要识别当前容器中可用的 GLIBC 版本,请在终端中执行
ldd
命令。
ldd --version
要解决此问题,请考虑切换到新的 SageMaker Studio 体验并使用SageMaker Distribution 映像。与 SageMaker Studio Classic 相比,SageMaker Distribution 映像不仅提供显着更快的启动时间,而且还包含 GLIBC 的更新版本。
要在 SageMaker 发行版映像上安装 Node v18,您只需运行以下命令:
sudo apt-get install -y nodejs
或者,您还可以选择创建自己的自定义映像(其中包括更新版本的 Linux 和 GLIBC)或从源代码安装 Node。然而,这两种方法可能比使用 SageMaker 分发映像需要更多的努力。