在Amazon Linux AMI上安装npm和supervisor包时遇到麻烦

我正在运行亚马逊Linux AMI,并通过wget源代码,成功安装node.js,解压缩文件,然后运行./configure ,然后使用sudo make install 。 当我安装npm时:

 curl http://npmjs.org/install.sh | sudo sh 

它输出:

 npm cannot be installed without nodejs. Install node first, and then try again. Maybe node is installed, but not in the PATH? Note that running as sudo can change envs. PATH=/sbin:/bin:/usr/sbin:/usr/bin 

但节点显然是安装的(运行node -v显示其版本),所以它必须是该节点不在我的path。

我打开~/.bash_profile并添加这一行:

 export PATH=/usr/local/bin:$PATH 

然后运行source ~/.bash_profile

并尝试再次安装npm,只是发现它输出的是和上次一样的消息,完全一样的PATH。

然后,奇怪的是,我注意到,实际上安装npm! 运行npm -v显示其版本。 嗯….

然后在我的应用程序的目录中运行npm install supervisor ,supervisor文件夹位于/node_modules ,但supervisor命令不存在。

安装pipe理员输出:

npm WARN prefer global supervisor@0.3.1 should be installed with -g

所以我试试npm install -g supervisor输出

 npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/supervisor' npm ERR! npm ERR! Please try running this command again as root/Administrator. 

所以我试试sudo npm install -g supervisor

但是输出是sudo: npm: command not found

所以总结一下,npm似乎工作正常,虽然安装时的输出会导致人们相信,否则,监控程序包似乎已经安装,但其命令不起作用。

任何帮助搞清楚这将不胜感激!

如有可能,最好避免编译软件包。 除了经常在非标准位置安装,从源代码编译的软件更难以保持最新。 Node.js提供了一个从存储库进行安装的过程 – 其中包括npm和其他一些相关的组件。 版本库保持最新状态,并且很less比源代码晚两天以上。 此外, 还特别针对Amazon Linux 提供了说明:

 sudo yum localinstall --nogpgcheck http://nodejs.tchol.org/repocfg/amzn1/nodejs-stable-release.noarch.rpm sudo yum install nodejs-compat-symlinks npm. 

npm应安装到/usr/bin/npm ,它是/usr/lib/nodejs/npm/bin/npm-cli.js.的符号链接/usr/lib/nodejs/npm/bin/npm-cli.js. 当然,对于PATH的一些修改,有可能找不到npm。 echo $PATH (作为根)应该类似于:

 /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin 

以前用npm安装失败的一个常见问题是损坏的caching – 清除npmcaching( npm cache clear )并查看是否有任何成功。 当然,在全球安装一个软件包需要以root身份完成。