如何在Amazon Linux 2及Amazon Corretto 11基础镜像中安装Node.js 18?
如何在Amazon Linux 2及Amazon Corretto 11基础镜像中安装Node.js 18?
我之前也碰到过一模一样的问题,核心原因是Amazon Linux 2默认自带的GLIBC版本是2.26,而你从Nodesource源安装的Node.js 18包要求GLIBC 2.27和2.28以上,版本不匹配就抛出了依赖错误。下面给你几个可行的解决办法:
方法一:用nvm安装兼容GLIBC 2.26的Node.js 18版本
nvm(Node Version Manager)可以帮你自动匹配并安装适配当前系统的Node.js版本,具体步骤可以加到你的Dockerfile里:
- 先安装nvm需要的依赖工具:
RUN yum install -y curl git - 安装nvm:你可以通过nvm官方提供的安装脚本完成安装,获取最新的安装指令即可。
- 加载nvm环境并安装Node.js 18,nvm会自动识别系统环境,下载并安装兼容的预编译版本:
RUN source ~/.bashrc && nvm install 18
方法二:手动编译Node.js 18源码
手动编译源码可以生成完全适配当前系统GLIBC版本的Node.js二进制文件,步骤如下:
- 安装编译所需的依赖套件:
RUN yum groupinstall -y "Development Tools" && yum install -y python3 openssl-devel - 获取Node.js 18的源码包,解压后进入源码目录:
(你可以从Node.js官方渠道获取对应版本的源码压缩包,用curl下载后tar解压即可) - 配置编译参数并完成安装:
编译过程耗时较长,你可以根据实际需求调整配置参数。RUN ./configure --prefix=/usr/local && make && make install
方法三:切换到Amazon Linux 2023基础镜像
如果你的业务场景允许,直接改用基于Amazon Linux 2023的Amazon Corretto 11镜像会更省事——Amazon Linux 2023自带的GLIBC版本足够支持Node.js 18,不需要额外处理依赖问题。你只需要把Dockerfile的基础镜像改为:
FROM amazoncorretto:11-al2023
之后按照常规方式从Nodesource源安装Node.js 18就不会出现依赖报错了。
备注:内容来源于stack exchange,提问作者kilseic
相关产品推荐
相关产品推荐

