phonegapのインストールを試す
PhoneGap というのを使うと、iPhone のアプリを JavaScript と HTML とCSS で書けるというのでインストールしてみた。(同じソースで Android のアプリも作れてしまうらしい。それぞれにアプリの作法の違いもあるから同じに作れてもそれでは好ましくないということもあるだろうけど、できるということは便利なことだ。)
インストールにあたって npm を使うので、そのためにまず node.js をインストールする。
node.js はインストーラーがあるので、起動して、質問に答えていけば無事に終わった。
それから、phonegap自体を
sudo npm install -g phonegap
(Windows の場合は sudo なし。 Mac の場合は root 権限で実行するために sudo ではじめることが必要。)
とコマンドラインで実行すればいいらしかったけど、
ECONNRESET というエラーが起きて失敗した。
KIMURA-no-MacBook-Pro:~ kimurashinichi$ sudo npm install -g phonegap WARNING: Improper use of the sudo command could lead to data loss or the deletion of important system files. Please double-check your typing when using sudo. Type "man sudo" for more information. To proceed, enter your password, or type Ctrl-C to abort. Password: npm WARN deprecated deflate-crc32-stream@0.1.2: module has been merged into crc32-stream npm ERR! Darwin 14.1.1 npm ERR! argv "node" "/usr/local/bin/npm" "install" "-g" "phonegap" npm ERR! node v0.12.2 npm ERR! npm v2.7.4 npm ERR! code ECONNRESET npm ERR! errno ECONNRESET npm ERR! syscall read npm ERR! network read ECONNRESET npm ERR! network This is most likely not a problem with npm itself npm ERR! network and is related to network connectivity. npm ERR! network In most cases you are behind a proxy or have bad network settings. npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly. See: 'npm help config' npm ERR! Darwin 14.1.1 npm ERR! argv "node" "/usr/local/bin/npm" "install" "-g" "phonegap" npm ERR! node v0.12.2 npm ERR! npm v2.7.4 npm ERR! code ECONNRESET npm ERR! errno ECONNRESET npm ERR! syscall read npm ERR! network read ECONNRESET npm ERR! network This is most likely not a problem with npm itself npm ERR! network and is related to network connectivity. npm ERR! network In most cases you are behind a proxy or have bad network settings. npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly. See: 'npm help config' npm ERR! Darwin 14.1.1 npm ERR! argv "node" "/usr/local/bin/npm" "install" "-g" "phonegap" npm ERR! node v0.12.2 npm ERR! npm v2.7.4 npm ERR! code ECONNRESET npm ERR! errno ECONNRESET npm ERR! syscall read
検索すると、プロキシを使ってるのにプロキシの設定がしてないと出る、なんて書いてあったりしたものの、結局は、 npm の registry の設定をするとうまくいった。
sudo npm -g config set registry http://registry.nodejs.org/
npm の設定に registry 項目が追加されてる。
KIMURA-no-MacBook-Pro:~ kimurashinichi$ sudo npm -g config list ; cli configs global = true user-agent = "npm/2.7.4 node/v0.12.2 darwin x64" ; globalconfig /usr/local/etc/npmrc registry = "http://registry.npmjs.org/" ; node bin location = /usr/local/bin/node ; cwd = /Users/kimurashinichi ; HOME = /Users/kimurashinichi ; 'npm config ls -l' to show all defaults.
これでうまくいった。
KIMURA-no-MacBook-Pro:~ kimurashinichi$ sudo npm install -g phonegap npm WARN engine npm@1.4.28: wanted: {"node":">=0.8","npm":"1"} (current: {"node":"0.12.2","npm":"2.7.4"}) npm WARN engine cordova-js@3.7.3: wanted: {"node":"~0.10.x"} (current: {"node":"0.12.2","npm":"2.7.4"}) npm WARN engine xmlbuilder@2.2.1: wanted: {"node":"0.8.x || 0.10.x"} (current: {"node":"0.12.2","npm":"2.7.4"}) npm WARN deprecated deflate-crc32-stream@0.1.2: module has been merged into crc32-stream > ws@0.4.31 install /usr/local/lib/node_modules/phonegap/node_modules/connect-phonegap/node_modules/socket.io/node_modules/engine.io/node_modules/ws > (node-gyp rebuild 2> builderror.log) || (exit 0) CXX(target) Release/obj.target/bufferutil/src/bufferutil.o > ws@0.4.31 install /usr/local/lib/node_modules/phonegap/node_modules/connect-phonegap/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws > (node-gyp rebuild 2> builderror.log) || (exit 0) CXX(target) Release/obj.target/bufferutil/src/bufferutil.o /usr/local/bin/phonegap -> /usr/local/lib/node_modules/phonegap/bin/phonegap.js phonegap@4.2.0-0.25.0 /usr/local/lib/node_modules/phonegap ├── pluralize@0.0.4 ├── colors@0.6.0-1 ├── semver@1.1.0 ├── minimist@0.1.0 ├── qrcode-terminal@0.9.4 ├── shelljs@0.1.4 ├── phonegap-build@0.9.1 (colors@0.6.2, qrcode-terminal@0.8.0, optimist@0.3.7, shelljs@0.0.9, phonegap-build-api@0.3.3) ├── prompt@0.2.11 (revalidator@0.1.8, pkginfo@0.3.0, read@1.0.5, winston@0.6.2, utile@0.2.1) ├── cordova@4.2.0 (underscore@1.7.0, q@1.0.1, nopt@3.0.1, cordova-lib@4.2.0) └── connect-phonegap@0.15.0 (home-dir@0.1.2, connect-inject@0.3.2, ip@0.3.1, ncp@0.6.0, findit@2.0.0, shelljs@0.2.6, request-progress@0.3.1, tar@0.1.19, http-proxy@1.8.1, node-static@0.7.0, gaze@0.4.3, archiver@0.10.1, localtunnel@1.3.0, useragent@2.0.8, request@2.33.0, connect@2.12.0, socket.io@1.0.4) KIMURA-no-MacBook-Pro:~ kimurashinichi$
PhoneGap は Apache Cordova という名前のプロジェクトにもなっているそうだけど、なるほど、無事インストールが終わると、cordovaもインストールされるんだ。cordova フォルダができてるね。