CentOS一键编译安装 NodeJS脚本
如题 CentOS一键编译安装 NodeJS脚本,使用NodeJS源代码编译,适用于CentOS和Debian,
默认安装的Nodejs版本已经老掉牙了
脚本支持选择node的版本和prefix
两个编译变量
NODE_VERSION=v8.11.3
NODE_PREFIX=/usr/local
使用了系统vCPU数量来控制NPROC数量,支持各种虚拟机的情况
NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1)
对于物理机编译安装,建议按实际CPU数量*单个CPU核心数量进行参数设置
另外使用国内的taobao作为NPM的第一来源镜像。
#!/bin/bash ############################################################################## # Build develop enviroment for running npm and nodejs # # version="1.0.0" # node="v8" # os="CentOS v7.4" # user=“dev” # description="Node v8 compiled from source running on CentOS v7.4" ############################################################################## ############################################################################## # If is root ############################################################################## if [ "$(whoami)" != 'root' ]; then echo "install need root user" exit fi ############################################################################## # Export enviroment variant ############################################################################## export TERM=xterm export NLS_LANG=American_America.AL32UTF8 export LANG=C # C.UTF-8 export LANGUAGE=C # C.UTF-8 export LC_ALL=C # C.UTF-8 export TIMEZONE=Asia/Shanghai ############################################################################## # Build variant ############################################################################## NODE_VERSION=v8.11.3 NODE_PREFIX=/usr/local ############################################################################## # Setup build enviroment ############################################################################## yum -y update yum -y install \ ca-certificates \ gcc \ gcc-c++ \ gnupg \ libgcc \ libstdc++ \ kernel-headers \ openssl \ openssl-devel \ mercurial \ subversion \ git ############################################################################## # Install Node & NPM ############################################################################## # Download and validate the NodeJs source for key in \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ FD3A5288F042B6850C66B31F09FE44734EB7990E \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ B9AE9905FFD7803F25714661B63B535A4C206CA9 \ 56730D5401028683275BD23C23EFEFE93C4CFFFE \ ; do \ gpg --keyserver pgp.mit.edu --recv-keys "$key"|| \ gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \ gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" ; \ done mkdir /node_src cd /node_src curl -o node-${NODE_VERSION}.tar.gz -sSL https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}.tar.gz curl -o SHASUMS256.txt.asc -sSL https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc gpg --verify SHASUMS256.txt.asc grep node-${NODE_VERSION}.tar.gz SHASUMS256.txt.asc | sha256sum -c - # Compile and install cd /node_src tar -zxf node-${NODE_VERSION}.tar.gz cd node-${NODE_VERSION} ./configure --prefix=${NODE_PREFIX} #./configure NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) make -j${NPROC} make install # Set PATH enviroment variant export PATH=${PATH}:${NODE_PREFIX}/bin # Add the environment variable to /etc/profile echo "export PATH=${PATH}:${NODE_PREFIX}/bin" >> /etc/profile ############################################################################## # Install Package use NPM ############################################################################## npm config set unsafe-perm true \ npm config set strict-ssl false \ npm config set registry https://registry.npm.taobao.org # npm config set proxy http://[email protected]:xxxx # npm config set https-proxy=http://[email protected]:xxxx # Install node packages npm install -g \ gulp-cli \ grunt-cli \ markdown-styles \ yarn ############################################################################## # Setup users ############################################################################## groupadd dev useradd -s /bin/bash -g dev dev echo "dev:password" | chpasswd ############################################################################## # Clean up ############################################################################## find ${NODE_PREFIX}/lib/node_modules/npm -name test -o -name .bin -type d | xargs rm -rf rm -rf \ /node_src \ /tmp/* \ /var/cache/yum/* \ ${NODE_PREFIX}/lib/node_modules/npm/man \ ${NODE_PREFIX}/lib/node_modules/npm/doc \ ${NODE_PREFIX}/lib/node_modules/npm/html |
Recent Comments