Ubuntuにnpmが入らない時の解決法

Ubuntuでnodejsとnpmをインストールしたときにnpmが入らなかったためその解決法

npmインストールのときに起こったこと

$ sudo apt-get install npm
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 npm : 依存: nodejs しかし、インストールされようとしていません
       依存: node-abbrev (>= 1.0.4) しかし、インストールされようとしていません
       依存: node-ansi しかし、インストールされようとしていません
       依存: node-archy しかし、インストールされようとしていません
       依存: node-block-stream しかし、インストールされようとしていません
       依存: node-fstream (>= 0.1.22) しかし、インストールされようとしていません
       依存: node-fstream-ignore しかし、インストールされようとしていません
       依存: node-github-url-from-git しかし、インストールされようとしていません
       依存: node-glob (>= 3.1.21) しかし、インストールされようとしていません
       依存: node-graceful-fs (>= 2.0.0) しかし、インストールされようとしていません
       依存: node-inherits しかし、インストールされようとしていません
       依存: node-ini (>= 1.1.0) しかし、インストールされようとしていません
       依存: node-lockfile しかし、インストールされようとしていません
       依存: node-lru-cache (>= 2.3.0) しかし、インストールされようとしていません
       依存: node-minimatch (>= 0.2.11) しかし、インストールされようとしていません
       依存: node-mkdirp (>= 0.3.3) しかし、インストールされようとしていません
       依存: node-gyp (>= 0.10.9) しかし、インストールされようとしていません
       依存: node-nopt (>= 2.1.1) しかし、インストールされようとしていません
       依存: node-npmlog しかし、インストールされようとしていません
       依存: node-once しかし、インストールされようとしていません
       依存: node-osenv しかし、インストールされようとしていません
       依存: node-read しかし、インストールされようとしていません
       依存: node-read-package-json (>= 1.1.0) しかし、インストールされようとしていません
       依存: node-request (>= 2.25.0) しかし、インストールされようとしていません
       依存: node-retry しかし、インストールされようとしていません
       依存: node-rimraf (>= 2.2.2) しかし、インストールされようとしていません
       依存: node-semver (>= 2.1.0) しかし、インストールされようとしていません
       依存: node-sha しかし、インストールされようとしていません
       依存: node-slide しかし、インストールされようとしていません
       依存: node-tar (>= 0.1.18) しかし、インストールされようとしていません
       依存: node-which しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

依存関係で壊れているらしい。

解決方法

ggrとUbuntuで依存関係が壊れている時の対応を見つける

aptitudeを用いて依存関係をダウンロードすることができるっぽいので試してみる。

$ sudo aptitude install npm
[sudo] password for takeuchi: 
以下の新規パッケージがインストールされます:
  gyp{a} libjs-node-uuid{a} node-abbrev{a} node-ansi{a} node-archy{a} node-async{a} node-block-stream{a} node-combined-stream{a} node-cookie-jar{a} node-delayed-stream{a} 
  node-forever-agent{a} node-form-data{a} node-fstream{a} node-fstream-ignore{a} node-github-url-from-git{a} node-glob{a} node-graceful-fs{a} node-gyp{a} node-inherits{a} node-ini{a} 
  node-json-stringify-safe{a} node-lockfile{a} node-lru-cache{a} node-mime{a} node-minimatch{a} node-mkdirp{a} node-mute-stream{a} node-node-uuid{a} node-nopt{a} 
  node-normalize-package-data{a} node-npmlog{a} node-once{a} node-osenv{a} node-qs{a} node-read{a} node-read-package-json{a} node-request{a} node-retry{a} node-rimraf{a} node-semver{a} 
  node-sha{a} node-sigmund{a} node-slide{a} node-tar{a} node-tunnel-agent{a} node-which{a} npm 
0 個のパッケージを更新、 47 個を新たにインストール、 0 個を削除予定、3 個が更新されていない。
988 k バイトのアーカイブを取得する必要があります。 展開後に 5,083 k バイトのディスク領域が新たに消費されます。
以下のパッケージには満たされていない依存関係があります:
 nodejs : 競合: npm [1.3.10~dfsg-1 がインストール予定となっています]
以下のアクションでこれらの依存関係の問題は解決されます:

     以下のパッケージを現在のバージョンに一時固定する:
1)     npm [インストールされていません]               



この解決方法を受け入れますか? [Y/n/q/?] .
以下のアクションでこれらの依存関係の問題は解決されます:

     以下のパッケージをインストールする:                                                         
1)     libc-ares-dev [1.10.0-2 (trusty)]                                                         
2)     libv8-3.14-dev [3.14.5.8-5ubuntu2 (trusty)]                                               
3)     libv8-3.14.5 [3.14.5.8-5ubuntu2 (now, trusty)]                                            
4)     nodejs-dev [0.10.25~dfsg2-2ubuntu1 (trusty)]                                              

     以下のパッケージをダウングレードする:                                                       
5)     libc-ares2 [1.10.0-2ubuntu0.1 (now, trusty-security, trusty-updates) -> 1.10.0-2 (trusty)]
6)     nodejs [0.10.37-1chl1~trusty1 (now, trusty) -> 0.10.25~dfsg2-2ubuntu1 (trusty)]           



この解決方法を受け入れますか? [Y/n/q/?] y

最初のこの解決方法を受け入れますかで「.」を入力することで依存関係の問題を解決してくれる。この解決方法を受け入れますかで「y」を選択すればよい

するとnpmが無事インストールされてる。apt-getで確認しても問題ない

$ which npm
/usr/bin/npm
$ sudo apt-get install npm
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
npm はすでに最新版です。

困ってる人の助けになれば….