Centos7安装Node20
背景
- 最近开发智能体平台MCP相关业务 为了内置开源MCP SERVER到服务器上需要安装node node推荐版本为20+;
- 开心的去node官网下载了长期版本V20.19.1 使用已经编译好的放到服务器上 node -v 给我报错 往上一查都是什么鬼
gcc make libstdc++.so.6.0.26 glibc 我一个java程序员我哪里知道这些。现在不搞懂 后续还让写一键部署脚本 那帮实施运维也会催你提供自动化脚本。偷懒是偷不了一点 为了微薄的薪水 为了心中的白月光 我想进大厂 只能硬着头皮武装大脑了。愿天堂没有打工人。 - 简单查了下 先进行类比 就是centos7内置库已经跟高版本nodejs不兼容了 就是windows98 需要安装英雄联盟安装不上去;那这问题不就简单了。开搞
解决办法
不要做命令行的搬运工 我就是要知道你们都是什么(再说了还有AI加持这些东西就是so easy)。我们没有天赋那就多重复几遍。
概念
1. gcc
1. gcc 是一套由 GNU 开发的编程语言编译器。它不仅仅是一个 C 编译器,而是一套完整的编译工具链,支持多种编程语言,包括 C、C++、Objective-C、Fortran、Ada、Go 等
2. gcc <--> javac ,负责将源代码翻译成机器代码。
2. make
1. make 是一个自动化构建工具。它读取名为 Makefile 的文件,该文件描述了程序构建的依赖关系和构建步骤。
2. make <--> Maven / Gradle 负责自动化构建过程。
3. libstdc++.so.6.0.26
1. libstdc++.so.6.0.26 是 GNU C++ 标准库的共享对象文件(shared object)。 它是 C++ 标准库的一个特定版本
2. libstdc++.so.6.0.26 <--> JDK 里面的一个包
4. glibc
1. 是 C 库,提供了程序运行所需的所有基本服务和功能,是 Linux 系统中最核心的共享库之一。
2. glibc <--> Java Native Interface (JNI) + Operating System
解决办法
按顺序执行
-
升级gcc
yum install -y centos-release-scl bison yum install -y devtoolset-8-gcc* ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++可能会报错:
-
升级make
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz tar -xzvf make-4.3.tar.gz && cd make-4.3/ ./configure --prefix=/usr/local/make make && make install cd /usr/bin/ && mv make make.bak ln -sv /usr/local/make/bin/make /usr/bin/make可能会报错
Could not retrieve mirrorlist http://mirrorlist.centos.org?arch=x86_64&release=7&repo=sclo-rh error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"有解释具体原因
参考链接:https://netshop-isp.com.cy/blog/how-to-fix-error-could-not-retrieve-mirrorlist-http-mirrorlist-centos-org-in-centos-7-server/
需要执行:sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* yum clean all && yum makecache可能会报错
configure: error: *** These critical programs are missing or too old: bison *** Check the INSTALL file for required versions.
这是提示我们的bison版本太老或者未安装,我这里是未安装我直接安装一下
yum install -y bison
如果没有安装g++
yum install -y g++ -
更新libstdc++.so.6.0.26
wget https://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0.26 cp libstdc++.so.6.0.26 /usr/lib64/ cd /usr/lib64/ ln -snf ./libstdc++.so.6.0.26 libstdc++.so.6可能会报错:
ERROR: cannot verify cdn.frostbelt.cn's certificate, issued by '/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Encryption Everywhere DV TLS CA - G2': Issued certificate has expired. To connect to cdn.frostbelt.cn insecurely, use `--no-check-certificate'.
我们根据提示在后面添加--no-check-certificatewget https://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0.26 --no-check-certificate -
更新glibc
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz tar xf glibc-2.28.tar.gz cd glibc-2.28/ && mkdir build && cd build ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make && make install ``
设置
-
建立软连接
[root@bogon bin]# ln -s /home/znt/agent/mcp-client/package/node-v20.19.1-linux-x64/bin/node /usr/local/bin/node [root@bogon bin]# ln -s /home/znt/agent/mcp-client/package/node-v20.19.1-linux-x64/bin/npm /usr/local/bin/npm [root@bogon bin]# ln -s /home/znt/agent/mcp-client/package/node-v20.19.1-linux-x64/bin/npx /usr/local/bin/npx -
更改npm镜像源
npm config set registry https://registry.npm.taobao.org

浙公网安备 33010602011771号