Centos7安装Node20

背景

  1. 最近开发智能体平台MCP相关业务 为了内置开源MCP SERVER到服务器上需要安装node node推荐版本为20+;
  2. 开心的去node官网下载了长期版本V20.19.1 使用已经编译好的放到服务器上 node -v 给我报错 往上一查都是什么鬼
    gcc make libstdc++.so.6.0.26 glibc 我一个java程序员我哪里知道这些。现在不搞懂 后续还让写一键部署脚本 那帮实施运维也会催你提供自动化脚本。偷懒是偷不了一点 为了微薄的薪水 为了心中的白月光 我想进大厂 只能硬着头皮武装大脑了。愿天堂没有打工人。
  3. 简单查了下 先进行类比 就是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

解决办法

按顺序执行

  1. 升级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++
    
    

    可能会报错:

  2. 升级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++

  3. 更新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-certificate

    wget https://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0.26 --no-check-certificate
    
  4. 更新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
    ``
    
    

设置

  1. 建立软连接

     [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
    
  2. 更改npm镜像源

    npm config set registry https://registry.npm.taobao.org
    

参考链接

  1. https://juejin.cn/post/7436648335379546162
  2. https://www.cnblogs.com/pang-py/p/18658986
posted @ 2025-04-28 16:18  贺艳峰  阅读(492)  评论(2)    收藏  举报