banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

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://xx@xx.com:xxxx#

npm config set https-proxy=http://xx@xx.com: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" | 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

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。