为什么所有使用NVM的用户都无法使用节点?

Jul*_*nec 7 ubuntu node.js nvm

这可能是一个新手问题,但我想知道为什么当我用nvm安装节点时,它只适用于这个用户(它不是"全局").

假设我使用"admin"用户登录服务器:

curl https://raw.githubusercontent.com/creationix/nvm/v0.7.0/install.sh | sh
source ~/.profile

nvm install 0.10.30
nvm use 0.10.30

node -v
# outputs v0.10.30
Run Code Online (Sandbox Code Playgroud)

节点已启动并正在运行此用户但是当我切换到根时:

su
node -v
Run Code Online (Sandbox Code Playgroud)

它显示:

The program 'node' can be found in the following packages:
 * node
 * nodejs-legacy
Try: apt-get install <selected package>
Run Code Online (Sandbox Code Playgroud)

为什么?有没有办法安装节点并使其可供所有用户使用?(我不想每次为新用户需要时重新安装.)

Fog*_*Day 18

问题是NVM将node.js安装到用户的本地目录,并更新该用户的.profile.

这是一个单行脚本,可以将您的安装复制到/ usr/local/bin,每个人都可以使用node.js:

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps

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

  • 叹息......所以用户所要做的就是在“find”之后添加一个额外的 `chmod 4755 /usr/local/bin/sudo` (r 等效项)...... (2认同)