NVM&Node.js – 为所有用户推荐安装
有没有推荐安装nvm,所有用户都可以使用它? 我无法在网上find任何关于此的信息。
这是我做的
- 在一个公共目录下安装nvm
- 为所有用户放置nvm.sh脚本位置.profile
- 创build一个nvm /别名目录(nvm抱怨,如果这不是其他用户在这里)
那么每个用户都必须运行“nvm use”或者默认将其放在他们的configuration文件中
不知道有没有更好的办法?
谢谢
这是我做的:
-
在
/opt/nvm
以root身份安装nvm
。 看起来像一个合适的位置。# git clone git@github.com:creationix/nvm.git /opt/nvm
-
创build目录
/usr/local/nvm
。 这是下载的地方($NVM_DIR
)# mkdir /usr/local/nvm
-
创build目录
/usr/local/node
。 这是NPM全球性的东西将去的地方:# mkdir /usr/local/node
-
在
/etc/profile.d
创build一个名为nvm.sh
的/etc/profile.d
,内容如下:export NVM_DIR=/usr/local/nvm source /opt/nvm/nvm.sh export NPM_CONFIG_PREFIX=/usr/local/node export PATH="/usr/local/node/bin:$PATH"
-
重新login到shell会话,然后设置默认节点版本。
# nvm install 0.10 # nvm alias default 0.10
下次login到shell会话时,节点二进制文件现在应该在所有用户的PATH
中。 NPM将全局的东西安装到/usr/local/node
前缀。
最好在全局安装一个节点副本,以便其他用户可以访问它。 为此,请运行以下命令(在提示符处input用户密码):
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
该命令通过nvm将任何已激活的节点版本复制到/usr/local/
目录并设置权限,以便所有用户都可以访问它们。
要检查它是否工作,请成为root用户,并执行另一个命令以确保节点现在已安装到/usr/local/bin
:
sudo -s which node
如果您想要更改系统安装的节点的版本,只需要另一个nvm使用vXX.XX.XX将您的用户节点切换到您想要的版本,然后重新运行上面的第一个命令将其复制到系统目录。
-
sudo -s
- 安装nvm:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | NVM_DIR=/usr/local/nvm bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | NVM_DIR=/usr/local/nvm bash
- 安装节点:
nvm install 7.2.0
- 在/etc/profile.d中创build一个名为nvm.sh的文件,内容如下:
export NVM_DIR="/usr/local/nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
export NVM_DIR="/usr/local/nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
由于LJHarbbuild议不要全局安装,所以我决定在login服务器时创build一个脚本来安装nvm。 我需要这个,因为我有几个用户设置可能会login,但需要访问pm2(监视我们的应用程序之一)。
在/etc/profile.d/中创build脚本(例如命名为nvm.sh):
#!/bin/bash NODE_VER=6.2.2 if [ ! -f ~/.nvm/nvm.sh ]; then # May need to be updated with the latest nvm release wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash fi source ~/.nvm/nvm.sh if ! command -v node | grep -q $NODE_VER; then echo "Node is not installed" nvm install $NODE_VER nvm alias default $NODE_VER fi
对于我们的应用程序,我们需要在用户之间共享pm2:
if ! command -v pm2 &>/dev/null; then echo "pm2 not installed" npm install -g pm2 fi # Share pm2 configuration between users alias pm2='env HOME=/opt/sora pm2'