Shell “之间的区别和联系”/usr/bin/npm“;及/usr/local/bin/npm“;
今天,在Centos7中,我卸载了Shell “之间的区别和联系”/usr/bin/npm“;及/usr/local/bin/npm“;,shell,centos7,Shell,Centos7,今天,在Centos7中,我卸载了nodejs和npm,然后通过安装 解压后,将其移动到/usr/local/nodejs。为了使其全球化,我将软链接配置如下: #ln -s /usr/local/nodejs/bin/npm /usr/local/bin/ #ln -s /usr/local/nodejs/bin/node /usr/local/bin/ 让我困惑的是: #nodejs -v 嗯。但是,但是,下面的命令: #npm -v 带来命令找不到的错误 尝试一些方法: 之后 #ln
nodejs
和npm
,然后通过安装
解压后,将其移动到/usr/local/nodejs
。为了使其全球化,我将软链接配置如下:
#ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
#ln -s /usr/local/nodejs/bin/node /usr/local/bin/
让我困惑的是:
#nodejs -v
嗯。但是,但是,下面的命令:
#npm -v
带来命令找不到的错误
尝试一些方法:
之后
#ln -s /usr/local/nodejs/bin/npm /usr/bin/
#npm -v
此命令运行正常。有什么不同
任何建议都将不胜感激。如果您正在使用bash,您的家中有一个名为
.bash\u profile
的文件。此命令运行一组命令来配置bash环境
此外,/etc/profile.d
中的所有.sh
文件都在您执行的每个会话上执行
因此,在这些脚本中,我们有一个名为PATH
的环境变量,它是在bash start上设置的
如果您尝试执行echo$PATH,您将看到一组以冒号分隔的目录:
每次尝试运行命令时,bash都会检查此$PATH
变量中设置的所有目录
如果找不到您的电话,我们可以得到两个:
$path
目录中chmod
)因此,检查您的
$PATH
,查看您的命令是否链接到正确的位置,是否有有效的文件,最后检查执行权限是否有效。看起来/usr/bin
在您的路径中(应该是这样),而/usr/local/bin
没有。哪个节点告诉您什么?我没有检查它。但是重新安装之后。nodejs-v,它向我展示了它的最新版本。运行nodejs-v
不会告诉你正在执行哪个nodejs
,而只是告诉你shell正在调用哪个可执行文件的版本。请尝试哪个nodejs
并键入nodejs
,以确定正在执行哪个可执行文件和/或函数。谢谢您的回答。但是为什么nodejs-v是好的,npm-v是错的?它们都链接到/usr/local/bin路径?!尝试检查链接是否指向运行ls/usr/local/bin/npm
的有效文件。检查符号链接是否指向存在的文件。另外,检查是否可以从/usr/loca/nodejs/bin/npm
运行npm
命令。确定。我现在无法连接office server,我将稍后再试。再次感谢,我再试了一次。链接到/usr/local/bin/npm也可以。也谢谢你的解释。