NVM和Node.js -建议所有用户安装

vbopmzt1  于 2023-08-04  发布在  Node.js
关注(0)|答案(7)|浏览(174)

是否有推荐的nvm安装,以便所有用户都可以使用它?我在网上找不到任何有关这方面的资料。
这就是我所做的

  • 已将nvm安装在公用目录中
  • 将所有用户的nvm.sh脚本位置放在.profile中
  • 创建了一个nvm/alias目录(如果其他用户不在此目录下,nvm会抱怨)

则每个用户必须运行“nvmuse,“或者默认将其放在其配置文件中
不确定是否有更好的方法?
谢了

zengzsys

zengzsys1#

我是这么做的:
1.以root身份在/opt/nvm中安装nvm。似乎是个合适的地点。

# git clone git@github.com:creationix/nvm.git /opt/nvm

字符串
1.创建目录/usr/local/nvm。这是下载的目的地($NVM_DIR

# mkdir /usr/local/nvm


1.创建目录/usr/local/node。这就是NPM全球性的东西将要去的地方:

# mkdir /usr/local/node


1.在/etc/profile.d中创建了一个名为nvm.sh的文件,内容如下:

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"


1.重新登录到shell会话,然后设置默认节点版本。

# nvm install 0.10
# nvm alias default 0.10


下次登录到shell会话时,所有用户的节点二进制文件现在都应该在PATH中。NPM会将全局的东西安装到/usr/local/node前缀。

mccptt67

mccptt672#

最好全局安装一个node副本,以便其他用户可以访问它。为此,请运行以下命令(在提示符处输入用户密码):

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用户并执行另一个which命令,以确保该节点现在已安装到/usr/local/bin

sudo -s
which node


如果你想更改系统范围内安装的节点的版本,只需使用另一个nvm使用vXX.XX.XX将用户的节点切换到你想要的版本,然后重新运行上面的第一个命令将其复制到系统目录。

w80xi6nr

w80xi6nr3#

1.以root用户身份登录:第一个月
1.创建目标文件夹:mkdir /usr/local/nvm
1.安装nvm:curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | NVM_DIR=/usr/local/nvm bash
1.在/etc/profile.d中创建一个名为nvm.sh的文件,内容如下:

#!/usr/bin/env bash
export NVM_DIR="/usr/local/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

字符串
1.设置权限chmod 755 /etc/profile.d/nvm.sh
1.运行/etc/profile.d/nvm.sh
1.安装节点:nvm install node
1.可选地更新npm:npm install -g npm

ncecgwcz

ncecgwcz4#

在Linux服务器上安装NVM,然后使用NVM安装节点版本(以root用户身份运行所有命令)。之后,对所有用户运行下面的命令,使nodejs在nvm中可用

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local

字符串
上面的命令有点复杂,但它所做的就是通过nvm将任何版本的节点复制到/usr/local/目录(用户安装的全局文件应该位于Linux VPS/服务器上)并设置权限,以便所有用户都可以访问它们。
/root/.nvm/versions/node/v8.10.0/bin/node
切换用户名,检查节点版本。

su - username
which node
/usr/local/bin/node

2ledvvac

2ledvvac5#

由于LJHarb建议不要全局安装,因此我决定创建一个脚本,以便在登录到服务器时安装nvm。我需要这个,因为我有几个用户设置,* 可能 * 登录,但需要访问pm2(以监视我们的应用程序之一)。
在/etc/profile.d/中创建脚本(例如名为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'

iyzzxitl

iyzzxitl6#

我有一个小的VPS与两个用户,希望避免安装多个副本的节点,由于空间有限
只需将具有NVM的用户的$HOME/.nvm移动到/opt/nvmchmod -R 777 /opt/nvm,以便所有用户都可写入
然后将每个用户的.bashrc中的NVM_HOME设置为/opt/nvm
对我来说,这似乎是最明显的解决方案,因为一个用户已经有了一个预先存在的.nvm文件夹
回复:丑陋的权限,这个副本将只用于开发目的-我会def建议任何人使用节点在生产中不考虑这种方法

vfwfrxfs

vfwfrxfs7#

我发现了一个更干净的方法,这样你可能会有多个版本的调整,我还没有尝试过。
登录到您的root帐户并按照以下步骤操作。
1.安装NVM
1.安装节点,例如:

nvm install 14

字符串
1.运行

n=$(which node);
n=${n%/bin/node};cd $n;cd ..;
ls


1.选择一个版本并运行它:

node_v=the_version_you_picked


1.运行

mv $node_v /usr/local/node/$node_v;cd /usr/local/node/$node_v;chmod -R 755 ./

echo "PATH=\${PATH}:/usr/local/node/$node_v/bin;export PATH" > /etc/profile.d/gloabl_node.sh


然后退出并重新登录,现在运行which nodenode -v以确认它正在工作。
现在您可以重命名bin文件和运行多个版本所需的所有其他配置。例如:重命名node-> node-14等等。

相关问题