在Docker中运行npm出现Error: could not get uid/gid的问题
但是通过设置`unsafe-perm true` 可以解决这个问题,不可思议。
npm config set unsafe-perm true |
npm config set unsafe-perm true
其他可以用的npm配置
# 关闭安全证书检查
npm config set unsafe-perm true |
npm config set unsafe-perm true
# 关闭强制SSL
npm config set strict-ssl false |
npm config set strict-ssl false
# 更改npm源
npm config set registry https://registry.npm.taobao.org |
npm config set registry https://registry.npm.taobao.org
#设置代理
# socks5 proxy
npm config set proxy http://xx@xx.com:xxxx
# http proxy
npm config set https-proxy=http://xx@xx.com:xxxx |
# socks5 proxy
npm config set proxy http://[email protected]:xxxx
# http proxy
npm config set https-proxy=http://[email protected]:xxxx
参考
http://www.cnblogs.com/liyongjian5179/p/9884944.html
如题 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 |
#!/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