这次我curl http://npmjs.org/install.sh | sudo sh从 dir运行了“信任”安装脚本/。
$ which npm
/usr/local/bin/npm
$ npm
bash: /home/steven/local/bin/npm: No such file or directory
$ echo $PATH
/home/steven/local/bin:/home/steven/local/bin:/home/steven/local/bin:/home/steven/local/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$ ls /home/steven/local/bin
node node-waf
$ ls /usr/local/bin
node node-waf npm npm_g npm-g
Run Code Online (Sandbox Code Playgroud)
似乎某个地方的某个脚本正在污染我的$PATH. 我想知道的是,如果bash在它查找的第一个目录中找不到该程序,它不是一直在查看$PATH吗?应该可以在里面找到/usr/local/bin!
npm真的,真的似乎不想只是工作。我想我要去加载一个稍微旧的 Ubuntu 并再试一次......
您可以认为自己相当幸运,因为您刚刚学会了简单的方法,即不应将附加的二进制目录放在PATH变量前面。在你的情况下,一个理智的PATH变量应该看起来像
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/steven/local/bin:/home/steven/local/bin:/home/steven/local/bin:/home/steven/local/bin
但实际上导致错误的问题并不是真正的PATH,而是可能被别名为 的命令npm。要了解这一点,请输入
type npm
Run Code Online (Sandbox Code Playgroud)
另一种选择可能是这/usr/local/bin/npm只是一个损坏的符号链接/home/steven/local/bin/npm(但您也可以通过上面的命令了解到这一点)。