无法在ubuntu上安装npm

试图在ubuntu 12.04上安装nodejs和npm。 我用Google搜索并做到了。 现在,我无法在机器上安装npm。

sudo apt-get install npm 

这给了我这个

 The following packages have unmet dependencies: npm : Depends: nodejs but it is not going to be installed Depends: nodejs-dev Depends: node-request but it is not going to be installed Depends: node-mkdirp but it is not going to be installed Depends: node-minimatch but it is not going to be installed Depends: node-semver but it is not going to be installed Depends: node-ini but it is not going to be installed Depends: node-graceful-fs but it is not going to be installed Depends: node-abbrev but it is not going to be installed Depends: node-nopt but it is not going to be installed Depends: node-fstream but it is not going to be installed Depends: node-rimraf but it is not going to be installed Depends: node-tar but it is not going to be installed Depends: node-which but it is not going to be installed E: Unable to correct problems, you have held broken packages. 

这看起来像你可能安装了chris-lea node.js ppa ,这很好。 但是,你没有从那个ppa安装npm,因为它破坏了debian包的工作方式。 相反,只需安装nodejs 。 一旦安装完毕,运行npm -v你应该会看到它已经安装好了。 如果您没有使用chris-lea ppa更新您在Googled的网页上的问题,以了解如何在Ubuntu上安装nodejs。

尝试安装这样的NodeJ:

 sudo apt-get install nodejs 

由于NodeJ安装节点和npm

我按照此文档解决了这个问题。

要记住使用npm的指针:

 mkdir ~/nodejs/ && cd ~/nodejs sudo apt-get install npm npm install npm update 

在开发应用程序时,如果nodejs需要任何特定模块,则运行

 cd ~/nodejs npm install modulename #for example sendgrid 

有时,模块需要全局安装; 然后用

 sudo npm install modulename -g" 

要删除模块:

 cd ~/nodejs npm uninstall modulename # if locally installed or sudo npm uninstall modulename -g # if globally installed 

npm prune有助于删除未满足的依赖项

问题是注册表,执行此命令,

 npm config set registry http://registry.npmjs.org/ 

我这样工作,检查它是否适合你

首先,您需要安装PPA才能访问其内容:

 curl -sL https://deb.nodesource.com/setup_9.x | sudo bash - 

(这适用于版本9,这是撰写本文时的最新版本)。

然后

 sudo apt-get install nodejs 

Apt不能很好地处理依赖冲突,使用snap或aptitude;

sudo aptitude install npm

我不得不对它提出的第一个解决方案按“否”,其中不包括安装npm(必须是aptitude中的错误)然后第二个解决方案我按下了n来检查npm已安装:

npm --version

安装nodejs将安装npm,所以只需删除nodejs然后重新安装它:

 sudo apt-get remove nodejs