node高版本安装

源码安装耗时预计要1个小时左右,具体看服务器性能

注意: 安装node环境,不要在线上业务上安装,这个环境安装主要是生成/usr/lib64/libstdc++.so.6动态库,这个文件会影响系统层,libstdc++.so.6文件损坏会导致系统命名都用不了、登录不了,确实要线上业务执行,请在云平台做好快照备份

安装方法,复制下面代码创建个shell脚本,直接运行就可以了

一、编写脚本: mkdir /data/recycle && cd /data/recycle
yum源安装(yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils)gcc会缺少lib库(/data/apps/gcc/lib64),会报错,所以只能源码安装gcc

bash 复制代码
cat > install_node_environment.sh <<'EOF'
#!/usr/bin/env bash

# 切换到执行脚本的目录里
cd $(dirname $0)
bash_dir=$(pwd)

# 安装gcc工具的依赖包
yum -y install gmp-devel mpfr-devel libmpc-devel gcc gcc-c++ wget lbzip2 unzip
[[ $? -ne 0 ]] && echo "gcc安装依赖包失败" && exit 1

# 下载gcc软件包
[[ -s gcc-8.5.0.tar.gz ]] || wget https://ftp.gnu.org/gnu/gcc/gcc-8.5.0/gcc-8.5.0.tar.gz --no-check-certificate
[[ $? -ne 0 ]] && echo "下载gcc软件包失败" && exit 1

tar -zxf gcc-8.5.0.tar.gz
[[ $? -ne 0 ]] && echo "解压gcc软件包失败" && exit 1

mkdir -p /data/apps/gcc gcc_build && cd gcc_build
[[ $? -ne 0 ]] && echo "切换目录失败" && exit 1

../gcc-8.5.0/configure --disable-multilib --enable-languages=c,c++ --prefix=/data/apps/gcc
[[ $? -ne 0 ]] && echo "gcc生成编译文件失败" && exit 1

make -j $(nproc)
[[ $? -ne 0 ]] && echo "gcc编译源代码,生成可执行文件失败" && exit 1

make install
[[ $? -ne 0 ]] && echo "gcc文件安装失败" && exit 1

if [[ -n $LD_LIBRARY_PATH ]]; then
    echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/apps/gcc/lib64' >> /etc/profile
else
    echo 'export LD_LIBRARY_PATH=/data/apps/gcc/lib64' >> /etc/profile
fi

yum -y remove gcc gcc-c++
[[ $? -ne 0 ]] && echo "卸载旧版本gcc失败" && exit 1

ln -sf /data/apps/gcc/bin/gcc /usr/bin/ && ln -sf /data/apps/gcc/bin/g++ /usr/bin/
[[ $? -ne 0 ]] && echo "gcc命令替换失败" && exit 1

# 加载环境
source /etc/profile

cd $bash_dir
[[ -s make-4.3.tar.gz ]] || wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz
[[ $? -ne 0 ]] && echo "下载make软件包失败" && exit 1

tar zxf make-4.3.tar.gz
[[ $? -ne 0 ]] && echo "解压make软件包失败" && exit 1

cd make-4.3/ && ./configure --prefix=/data/apps/make
[[ $? -ne 0 ]] && echo "make生成编译文件失败" && exit 1

make -j $(nproc)
[[ $? -ne 0 ]] && echo "make编译源代码,生成可执行文件失败" && exit 1

make install
[[ $? -ne 0 ]] && echo "make文件安装失败" && exit 1

\cp /data/apps/make/bin/make $(which make)
[[ $? -ne 0 ]] && echo "make命令替换失败" && exit 1

yum -y install bison bison-devel
[[ $? -ne 0 ]] && echo "glibc安装依赖包失败" && exit 1

cd $bash_dir
[[ -s glibc-2.28.tar.gz ]] || wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
[[ $? -ne 0 ]] && echo "下载glibc软件包失败" && exit 1

tar zxf glibc-2.28.tar.gz
[[ $? -ne 0 ]] && echo "解压glibc软件包失败" && exit 1

mkdir glibc_build && cd glibc_build
../glibc-2.28/configure \
  --prefix=/usr \
  --disable-werror \
  --enable-add-ons \
  --with-headers=/usr/include \
  --with-binutils=/usr/bin \
  --disable-tests
[[ $? -ne 0 ]] && echo "glibc生成编译文件失败" && exit 1

make -j $(nproc)
[[ $? -ne 0 ]] && echo "glibc编译源代码,生成可执行文件失败" && exit 1

make install
[[ $? -ne 0 ]] && echo "glibc文件安装失败" && exit 1

EOF

二、执行安装:

bash 复制代码
sh install_node_environment.sh
source /etc/profile

遇到这种报错可以忽略

三、执行更新语言包,不然会像这样报错和打开文件会乱码: cd /data/recycle/glibc_build && make localedata/install-locales

安装node

根据实际情况修改版本号就可以了

安装方法,复制下面代码创建个shell脚本,直接运行就可以了

一、安装node环境: cd /data/recycle

bash 复制代码
cat > install_node_environment.sh <<'EOF'
#!/usr/bin/env bash
# 切换到执行脚本的目录里
cd $(dirname $0)
bash_dir=$(pwd)

# 修改node版本号
node_version=22.19.0

[[ -s node-v${node_version}-linux-x64.tar.xz ]] && wget https://nodejs.org/dist/v${node_version}/node-v${node_version}-linux-x64.tar.xz
[[ $? -ne 0 ]] && echo "下载node软件包失败" && exit 1

tar xf node-v${node_version}-linux-x64.tar.xz
[[ $? -ne 0 ]] && echo "解压node软件包失败" && exit 1

mv node-v${node_version}-linux-x64 /data/apps/nodejs
[[ $? -ne 0 ]] && echo "移动node到软件管理目录失败" && exit 1

cat > /etc/profile.d/nodejs_home.sh <<'node_eof'
export NODEJS_HOME=/data/apps/nodejs
export PATH=$PATH:$NODEJS_HOME/bin
node_eof
[[ $? -ne 0 ]] && echo "node环境变量配置失败" && exit 1

EOF

二、安装node: sh install_node.sh

三、加载环境: source /etc/profile

四、测试: node -v

相关推荐
以太浮标5 小时前
华为eNSP模拟器综合实验之- ACL控制列表核心命令全解析及场景应用
运维·网络·网络协议·华为·信息与通信
巨斧空间掌门5 小时前
JDK17 下载 windows Linux
linux·运维·服务器
小挪号底迪滴5 小时前
Docker容器化实战:从“在我机器上能跑“到环境一致性
运维·docker·容器
江畔何人初6 小时前
kube-apiserver、kube-proxy、Calico 关系
运维·服务器·网络·云原生·kubernetes
_下雨天.6 小时前
Nginx性能调优与深度监控
运维·nginx
皮卡蛋炒饭.7 小时前
进程得控制
linux·运维·服务器
带娃的IT创业者8 小时前
WeClaw 日志分析实战:如何从海量日志中快速定位根因?
运维·python·websocket·jenkins·fastapi·架构设计·实时通信
杨云龙UP9 小时前
Oracle ASM磁盘组空间分配与冗余理解
linux·运维·数据库·sql·oracle
互成10 小时前
加密系统哪款最好用?2026年五款加密系统深度对比测评
运维·网络·安全
minji...10 小时前
Linux 库制作与原理(三)深入动静态链接原理
linux·运维·服务器·c++