Node.js 将SUDO与NVM一起使用?
如果node.js是由NVM安装的,如何执行类似于Node.js 将SUDO与NVM一起使用?,node.js,npm,nvm,Node.js,Npm,Nvm,如果node.js是由NVM安装的,如何执行类似于sudo npm rebuild或sudo node的操作 每次我键入sudo命令时,我的控制台都会尝试在/usr/bin/或/usr/lib中执行npm或节点程序,两者都不存在。尝试在/usr/bin或/usr/lib中创建符号链接。这不是一个强有力的解决方案,但可能已经足够了 sudo ln -s /home/denny/.nvm/versions/node/v0.12.0/bin/npm /usr/bin/npm sudo用于在系统位置写
sudo npm rebuild
或sudo node
的操作
每次我键入
sudo
命令时,我的控制台都会尝试在/usr/bin/
或/usr/lib
中执行npm
或节点
程序,两者都不存在。尝试在/usr/bin
或/usr/lib
中创建符号链接。这不是一个强有力的解决方案,但可能已经足够了
sudo ln -s /home/denny/.nvm/versions/node/v0.12.0/bin/npm /usr/bin/npm
sudo
用于在系统位置写入。建议可能是有用的,尤其是或有用的
其他建议:
根据评论,您可以尝试在/home/denny/npm.sh
创建bash脚本:
#!/bin/bash
PTH="/home/denny/.nvm/versions/node/$(node -v)/bin/npm"
$PTH
将其正确编码为+x
,并使用以下内容创建符号链接:
sudo ln -s /home/denny/npm.sh /usr/bin/npm
应该始终检查
节点-v
并从适当的目录运行npm
。我需要这样做才能运行Atom安装脚本,但我不想永久更改我的机器设置。所以,我做到了:
sudo bash
然后我在用户的主目录树中找到了nvm.sh文件:
source /home/ada-lovelace/.nvm/nvm.sh
这让我可以用root运行必要的命令。当然,这意味着下一次我需要在与root用户的会话中运行node时,我必须再次执行这些步骤,但我预计在不久的将来不需要执行这些步骤。您想实现什么?如果
npm
或node
存在,使用sudo
将无法使它们工作。我尝试重建一个基于node-gyp
的插件。但是npm-rebuild
仅适用于sudo。我在这里使用的是LinuxMint,之前我通过apt-get安装了node。但由于我迁移到NVM并下载了最新的节点包,我卸载了旧节点,现在sudo npm rebuild
无法工作。我只需要我的npm
来处理sudo
使用sudo
权限运行node和NVM命令不是一个好主意。Node.js和NVM开发人员也不建议这样做……试图在/usr/bin
或/usr/lib
中添加符号链接?@yergo:如何做到?我正在尝试将新节点(NVM版本)添加到我的$PATH中,但没有成功在搜索了一整天之后,这个解决方案是我所知道的最好的。唯一的问题是:我需要为node&npm创建另一个符号链接:sudo ln-s/usr/bin/nodejs/home/denny/.nvm/versions/node/v0.12.0/bin/node
,并且每次使用nvm更改节点版本时都要这样做。@denny已经改进了我的答案,您可能有兴趣测试它:)