我使用以下命令在我的Ubuntu机器上安装了nodejs + npm:
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs
而且,按顺序to use yeoman without sudo我使用了以下命令:
echo prefix = ~/.node >> ~/.npmrc
export PATH="$PATH:$HOME/.node/bin"
之后,我无法更新NPM。如果我运行npm update -g npm
版本号没有改变,但是,如果我在echo prefix
命令之前运行更新命令,则更新正常,npm会更新。
答案 0 :(得分:2)
您已安装node
+ npm
。默认情况下,npm
使用/usr/lib/node_modules/
目录来安装全局模块。非托管用户通常没有对该目录的写访问权限,因此无法全局安装npm软件包。
命令echo prefix = ~/.node >> ~/.npmrc
告诉npm
将全局包安装到~/.node/node_modules
而不是usr/lib/node_modules
。
致电:
echo 'export PATH=$HOME/.node/bin:$PATH' >> ~/.bashrc
提供二进制脚本的所有npm
个包都会添加到$ PATH(例如yo
,browserify
),还会添加npm
。
npm
包通过npm
包管理器本身进行管理。以下命令将npm
更新为最新版本:
npm install -g npm
NodeSource提供nodejs
+ npm
的二进制版本。
在usage instructions中,他们说要以Debian系统的管理员身份运行这两个命令:
sudo curl -sL https://deb.nodesource.com/setup | bash -
sudo apt-get install -y nodejs nodejs-legacy
现在应该在您的系统上全局安装设置脚本中最重要的一行是:
echo 'deb https://deb.nodesource.com/node ${DISTRO} main' > /etc/apt/sources.list.d/nodesource.list
node
+ npm
。从现在开始,更新应由apt-get
管理。
据我所知,您的node
目录中安装了另一个npm
+ ~/.node
。我不确定你为什么需要它。据我所知,全局npm
软件包已安装到~/.npm
目录中,并且不会干扰npm
安装的apt-get
二进制文件。
无论如何,如果您真的想要使用~./node/bin
中的自定义节点安装,则应以这种方式导出$PATH
:
export PATH="$HOME/.node/bin:$PATH"
此外,您可以通过将此命令添加到$PATH
文件来自动导出~/.bashrc
:
echo 'export PATH=$HOME/.node/bin:$PATH' >> ~/.bashrc
* NIX在npm
中指定的每个目录中查找二进制文件(例如$PATH
)。它从左到右执行并执行它找到的第一个匹配的二进制文件。 $PATH
变量中的某处/usr/bin
。如果您希望首先找到来自npm
的{{1}} / node
,则应将该目录放在~/.node/bin
环境变量的左侧。
答案 1 :(得分:0)
如果你想要一个更新的nodejs + npm:
sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
sudo npm update -g npm
Etvoilà!