【问题标题】:Why does node is not available to all users with NVM?为什么节点不是对所有使用 NVM 的用户都可用?
【发布时间】:2014-08-18 17:09:25
【问题描述】:

这可能是一个新手问题,但我想知道为什么当我用 nvm 安装 node 时,它​​只对这个用户可用(它不是“全局的”)。

假设我使用用户“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

节点已为该用户启动并运行,但当我切换到根时:

su
node -v

它显示:

The program 'node' can be found in the following packages:
 * node
 * nodejs-legacy
Try: apt-get install <selected package>

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

【问题讨论】:

  • 因为只有 root 用户才能将各种文件安装到系统目录中,例如/usr/bin 之类的。作为一个普通用户,你被限制在你可以写东西的地方,通常只是你自己的主目录。 /home/admin/bin 极不可能在任何其他用户的 $PATH 中。

标签: node.js ubuntu nvm


【解决方案1】:

问题在于 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

【讨论】:

  • 对我来说是:n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 2016-08-07
相关资源
最近更新 更多