我的菜鸟小笔记(在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 发现没有问题了
虽然不知道这波操作科不科学,但是最后成功了!
我的菜鸟小笔记