美文网首页Linux
sudo: npm:找不到命令

sudo: npm:找不到命令

作者: 春天有花 | 来源:发表于2019-06-22 17:31 被阅读1次

我的菜鸟小笔记(在deepin中)
在直接使用 npm 时可以正常使用

zhng@zhng-mx:/$ npm
Usage: npm <command>
where <command> is one of:
    access, adduser, audit, bin, bugs, c, cache, ci, cit,
    completion, config, create, ddp, dedupe, deprecate,
    dist-tag, docs, doctor, edit, explore, get, help,
npm@6.4.1 /opt/node-v8.16.0-linux-x64/lib/node_modules/npm
、、、  、、、
、、、  、、、  、、、

但是在 使用 sudo 时却找不到命令

zhng@zhng-mx:/opt$ sudo npm 
sudo: npm:找不到命令

原因:
输入 which npm 查看npm命令所在的位置(这个只是我个人安装的目录)

zhng@zhng-mx:~$ which npm
/opt/node-v8.16.0-linux-x64/bin/npm

这个目录只是系统中普通用户的目录,而 sudo 执行的命令是在 /usr/bin 目录下,
所以,解决方法如下:
将用户目录下的 npm 文件创建一个链接到 sudo 的执行目录下,让 sudo 也能找得到这个文件,就可以愉快的执行命令了
网上大神都这么说的,但是我这么操作死活不成功
https://blog.csdn.net/lmmilove/article/details/30066489

sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

最后我就换了个方法,先进入到了 /usr/bin 的目录下,然后在执行上面的命令,当然目录是个人的,都不一样

zhng@zhng-mx: cd /usr/bin$
zhng@zhng-mx:/usr/bin$ sudo ln -s /opt/node-v8.16.0-linux-x64/bin/npm
zhng@zhng-mx:/usr/bin$ sudo ln -s /opt/node-v8.16.0-linux-x64/bin/node

然后查看一下:

zhng@zhng-mx:~$ which npm
/usr/bin/npm

命令路径成功改变!
现在再去执行 sudo npm install -g xxx 发现没有问题了
虽然不知道这波操作科不科学,但是最后成功了!
我的菜鸟小笔记

相关文章

网友评论

    本文标题:sudo: npm:找不到命令

    本文链接:https://www.haomeiwen.com/subject/rmsvqctx.html