spark2のインストール

node.jsには複数の子プロセスを起動してそれらに処理を分散させるライブラリがあります。その中にあるspark2というのがヨサゲなんですが、インストールに躓いたのでメモ。

$ npm install spark2
npm info it worked if it ends with ok
npm info using npm@0.3.4
npm info using node@v0.4.1
npm info fetch http://registry.npmjs.org/spark2/-/spark2-2.0.11.tgz
npm info calculating sha1 /var/folders/ha/hahuiaCIG94DCkXqGm1vYE+++TI/-Tmp-/npm-1298819796102/1298819796102-0.6748477106448263/tmp.tgz
npm info shasum 3e55f7a488e9498d310b4e07e0b93441891b777b
npm info calculating sha1 /Users/ryu/.nvm/v0.4.1/lib/node/.npm/.cache/spark2/2.0.11/package.tgz
npm info shasum 826b4e1fcd1a587724e9c0a5413bab9b9bffc549
npm info range lsof@>=0.0.1
npm info fetch http://registry.npmjs.org/lsof/-/lsof-0.0.1.tgz
npm info calculating sha1 /var/folders/ha/hahuiaCIG94DCkXqGm1vYE+++TI/-Tmp-/npm-1298819796102/1298819798003-0.06807073205709457/tmp.tgz
npm info shasum 16fa5fbab03599f1c78df731b4bc61df87fbde21
npm ERR! couldn't read package.json in /var/folders/ha/hahuiaCIG94DCkXqGm1vYE+++TI/-Tmp-/npm-1298819796102/1298819798003-0.06807073205709457/contents/package
npm ERR! Error installing lsof@0.0.1
npm ERR! Error: Failed to parse json
npm ERR! Unexpected token ]
npm ERR! at jsonParseFail (/Users/ryu/.nvm/v0.4.1/lib/node/.npm/npm/0.3.4/package/lib/utils/read-json.js:89:11)
npm ERR! at /Users/ryu/.nvm/v0.4.1/lib/node/.npm/npm/0.3.4/package/lib/utils/read-json.js:82:14
npm ERR! at P (/Users/ryu/.nvm/v0.4.1/lib/node/.npm/npm/0.3.4/package/lib/utils/read-json.js:62:40)
npm ERR! at cb (/Users/ryu/.nvm/v0.4.1/lib/node/.npm/npm/0.3.4/package/lib/utils/graceful-fs.js:31:9)
npm ERR! at [object Object]. (fs.js:86:5)
npm ERR! at [object Object].emit (events.js:39:17)
npm ERR! at afterRead (fs.js:843:12)
npm ERR! JSON.parse
npm ERR! JSON.parse Failed to parse package.json data.
npm ERR! JSON.parse Note that package.json must be actual JSON, not
npm ERR! JSON.parse just a JavaScript object.
npm ERR! JSON.parse
npm ERR! JSON.parse This changed in npm 0.3.0, and is not a bug in npm.
npm ERR! JSON.parse Tell the package author to fix their package.json file.
npm ERR! JSON.parse
npm not ok

どうもパッケージlsofをインストールする時にjsonのパースに失敗しているようです。

cd /var/folders/ha/hahuiaCIG94DCkXqGm1vYE+++TI/-Tmp-/npm-1298819796102/1298819798003-0.06807073205709457/contents/package
vi package.json

以下のjsonでカンマが不要なので消します。

"contributors": [
{ "name": "Dav Glass", "email": "XXXX@gmail.com" },←コレ
],

"contributors": [
{ "name": "Dav Glass", "email": "XXXX@gmail.com" }
],

修正したものでもう一度lsofをインストールしてみる

npm install /var/folders/ha/hahuiaCIG94DCkXqGm1vYE+++TI/-Tmp-/npm-1298819796102/1298819798003-0.06807073205709457/contents/package
npm info it worked if it ends with ok
npm info using npm@0.3.4
npm info using node@v0.4.1
npm info calculating sha1 /Users/ryu/.nvm/v0.4.1/lib/node/.npm/.cache/lsof/0.0.1/package.tgz
npm info shasum 873f0797c07c5e932b0c716eb8dc033a57702076
npm info preinstall lsof@0.0.1
npm info install lsof@0.0.1
npm info postinstall lsof@0.0.1
npm info preactivate lsof@0.0.1
npm info activate lsof@0.0.1
npm info postactivate lsof@0.0.1
npm info build Success: lsof@0.0.1
npm ok

うまくいきましたので、もう一度spark2をインストール

npm install spark2
npm info it worked if it ends with ok
npm info using npm@0.3.4
npm info using node@v0.4.1
npm info preinstall spark2@2.0.11
npm info install spark2@2.0.11
npm info postinstall spark2@2.0.11
npm info preactivate spark2@2.0.11
npm info activate spark2@2.0.11
npm info postactivate spark2@2.0.11
npm info build Success: spark2@2.0.11
npm ok

上手くインストールできました。


spark2の細かい使い方は
https://github.com/davglass/spark2
のREADMEにあります。