Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将SUDO与NVM一起使用?_Node.js_Npm_Nvm - Fatal编程技术网

Node.js 将SUDO与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用于在系统位置写

如果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
用于在系统位置写入。建议可能是有用的,尤其是或有用的

其他建议: 根据评论,您可以尝试在
/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已经改进了我的答案,您可能有兴趣测试它:)