npm安装的全局包,centos无法识别命令的解决方案
发布于 作者:苏南大叔 来源:程序如此灵动~在centos
操作系统下,苏南大叔尝试使用electron-packager
打包electron
程序的时候,发生了一个小插曲。那就是centos
无法识别到全局安装的electron-packager
命令,这个问题该如何解决呢?
本文测试环境:centos
/npm
/node
/electron-packager
。
现象描述
苏南大叔的centos
系统中,调试electron
打包后的效果,打包途径使用的是electron-packager
,那么按照既往套路,就应该先利用npm
安装一个全局的electron-packager
,然后再调用对应命令即可完成。
npm i electron-packager -g
相关链接:
- https://newsn.net/say/electron-packager-command.html
- https://newsn.net/say/centos-node-bin-2.html
- https://newsn.net/say/electron-centos-speed.html
但是,全局安装electron-packager
之后,试图执行electron-packager
的时候,就发现了一个非常神奇的问题。
electron-packager .
提示如下:
electron-packager command not found
问题虽然非常地奇特,但是解决方案也是比较容易,那就是设置环境变量PATH
。
寻找安装好的npm
包
使用whereis
寻找安装好的npm
包,比如electron-packager
的位置。
whereis electron-packager
得到的electron-packager
路径是:
electron-packager: /opt/node/bin/electron-packager
所以,初步可以判断是系统环境变量PATH
,没有识别出路径/opt/node/bin/
。在centos
系统下,这个路径是npm
全局包的位置。
获得当前PATH
可以在终端命令行里面,通过下面的方式获得环境变量PATH
。
echo $PATH
在苏南大叔centos
系统下,返回值为:
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/parallels/.local/bin:/home/parallels/bin
接下来,苏南大叔需要做的就是,将/opt/node/bin/
叠加到上述PATH
系统变量之中。每个人的系统变量值都是不一样的,请确认属于您自己的PATH
系统变量,请不要复制粘贴!!
临时解决方案
大家都知道,在centos
环境下的终端中,可以使用export
命令临时设置PATH
。
export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/parallels/.local/bin:/home/parallels/bin:/opt/node/bin/
这个方案仅仅是个临时方案,只针对当前会话有效,执行之后,就可以在终端中识别出electron-packager
这个全局命令了。
永久解决方案(当前用户)推荐
这个方案也比较简单,就是修改centos
的当前用户配置文件~/.bash_profile
:
vi ~/.bash_profile
在最后一行后面,增加识别新的路径/opt/node/bin/
即可,注意分隔符是:
。
PATH=$PATH:$HOME/bin:/opt/node/bin/
export PATH
source
一下对应文件后,立即生效。
source ~/.bash_profile
永久解决方案(所有用户)
和上一条的思路基本一致,不同的是:编辑的文件变成了/etc/profile
。这个配置文件是所有用户都生效的,但是,原版的末尾是没有类似的PATH
语句的,需要全部自行添加。
PATH=$PATH:/opt/node/bin/
export PATH
当然,为了不重启系统就生效的话,建议您source
一下。
source /etc/profile
总结
无论使用哪种方式,正确设置了PATH
之后,就可以正确识别出npm
全局包命令了。更多的npm
相关文章,请点击:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。