在Ubuntu 18.04上安装Nodejs v18

5

我们正在使用Azure Pipelines,构建代理使用Ubuntu 18.04作为操作系统。

我目前正试图将我们管道中的Nodejs版本从16更新到18。通过使用Azure Pipelines的NodeTool任务versionSpec: "18.x",安装Nodejs非常简单。

然而,在使用Nodejs之后,它提示我缺少一个依赖项: node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)\

我甚至可以使用以下说明在docker中复制这种行为。

docker pull ubuntu:18.04
docker run -it {IMAGE-ID}

# console switches to TTY session for running container…

apt update
apt install curl
curl -fsSL https://deb.nodesource.com/setup_18.x | bash
apt-get install -y nodejs

# checking the node version generates the error above

node -v

这里的问题可能有点过头了,但我不习惯使用Linux系统。

我能否轻松解决Node.js的依赖关系? 或者在此安装缺失的依赖项的一般方法是什么?

3个回答

3

这条消息出现在您上述提到的安装过程中。

## Run sudo apt-get install -y nodejs` to install Node.js 18.x and npm
## You may also need development tools to build native addons:
sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/enter code hereshare/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-enter code hereby=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.denter code here/yarn.list
sudo apt-get update && sudo apt-get install yarn

我尝试过了,但仍然得到相同的错误。

所以经过一些研究,似乎 node 18 和 Ubuntu 18 不兼容。

https://github.com/nodesource/distributions/issues/1392

如果您在谷歌上搜索该错误,您将会找到更多关于此问题的信息。

升级到Ubuntu 20.04应该可以解决这个问题。 如果您除了使用Node.js之外没有其他需要使用Ubuntu的原因,我建议您尝试使用node:18-alpine(官方Node.js镜像之一)。Alpine比Ubuntu更轻量级。


我一直在寻找类似的Github问题,但是没有找到。感谢您发布它。 - marschelpoet

1

0
我找到了一个简单的解决方案,它不需要重新编译完整的Node.js二进制文件,这可能需要很长时间,特别是在嵌入式系统上。相反,我通过编译正确版本的glibc,并使用patchelf来修补原始二进制文件以使其与之配合工作。
详细的说明可以在这里找到:

https://dev59.com/71EG5IYBdhLWcg3wIksH#77247394


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接