NVM&Node.js – 为所有用户推荐安装

有没有推荐安装nvm,所有用户都可以使用它? 我无法在网上find任何关于此的信息。

这是我做的

  • 在一个公共目录下安装nvm
  • 为所有用户放置nvm.sh脚本位置.profile
  • 创build一个nvm /别名目录(nvm抱怨,如果这不是其他用户在这里)

那么每个用户都必须运行“nvm use”或者默认将其放在他们的configuration文件中

不知道有没有更好的办法?

谢谢

这是我做的:

  1. /opt/nvm以root身份安装nvm 。 看起来像一个合适的位置。

     # git clone git@github.com:creationix/nvm.git /opt/nvm 
  2. 创build目录/usr/local/nvm 。 这是下载的地方( $NVM_DIR

     # mkdir /usr/local/nvm 
  3. 创build目录/usr/local/node 。 这是NPM全球性的东西将去的地方:

     # mkdir /usr/local/node 
  4. /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" 
  5. 重新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将您的用户节点切换到您想要的版本,然后重新运行上面的第一个命令将其复制到系统目录。

  1. sudo -s
  2. 安装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
  3. 安装节点: nvm install 7.2.0
  4. 在/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'