MacPortsを使って特定のバージョンをインストールする(nodejs編)
Titanium SDK 3.1がリリースされたので、何となくnode.js自体をアップグレードしたら動かなくなったときの覚書。
環境: Mac OS X 10.8.2, Titanium SDK 3.1, node.js 0.8.22, npm 1.2.18
参考にしたサイトは下記
まずはMacPorts自体を最新にする。
$ sudo port selfupdate
$ sudo port -d sync
何も考えず全てアップグレードしてみる。
$ sudo port upgrade outdated
するとnodejsがv0.10.4とnpm 1.2.18にアップグレードされてTitanium関係のコマンドが動かなくなった。
インストールされたソフトを一覧
$ sudo port installed
古いバージョンにスイッチする
$ sudo activate nodejs @0.8.16_0+python27+ssl
せっかくなのでnodejs v0.8系の最新をインストールしてみる。ChangeLogはGitHubのwikiにある。
MacPorts公式リポジトリから「nodejs 0.8.22」で検索。
Portfileのリビジョン番号が「103783」とわかる。
ダウンロードしてインストール
$ svn co -r 103783 http://svn.macports.org/repository/macports/trunk/dports/devel/nodejs/
$ sudo chown -R macports:macports nodejs
$ sudo mv nodejs/ /opt
$ cd /opt/nodejs
$ sudo port install
確認
$ sudo port installed nodejs
v0.10.4はアンインストール。インストールディレクトリも削除。
$ sudo port uninstall nodejs @0.10.4_0+python27+ssl
$ cd
$ sudo rm -rf /opt/nodejs/
nodejs 0.8.22に対応するnpm 1.2.14にダウングレード。
下記エラーが出たのでまずは一旦npmを全部アンインストールすることにした。
Error: org.macports.activate for port npm returned: Image error: /opt/local/lib/node_modules/npm/doc/cli/global.md already exists and does not belong to a registered port. Unable to activate port npm. Use 'port -f activate npm' to force the activation.
To report a bug, follow the instructions in the guide:
http://guide.macports.org/#project.tickets
Error: Processing of port npm failed
$ sudo port uninstall npm @1.1.62_0
$ sudo port uninstall npm @1.2.18_0
npm関連ファイルを削除。
$ sudo rm -rf /opt/local/lib/node_modules/npm
nodejsと同じようにインストール
$ svn co -r 103782 http://svn.macports.org/repository/macports/trunk/dports/devel/npm/
$ sudo chown -R macports:macports npm
$ sudo mv npm/ /opt
$ cd /opt/npm
$ sudo port install
nodejs v0.10.4がインストールされたので、削除
$ sudo port activate nodejs @0.8.22_0+python27+ssl
$ sudo port uninstall nodejs @0.10.4_0+python27+ssl
npmを最新版に
$ sudo npm -g update
バージョンを確認してみる。
$ npm -v
1.2.18になってた。。。ので、この作業は必要ないかも?
環境が整ったので、いつものようにTitaniumプロジェクトをコンパイルしてみる。念のためbuild以下を削除する。
$ cd Documents/hoge_project
$ rm -rf build/iphone
$ titanium build -p ios --log-level trace
tiapp.xmlを下記のように変更するのを忘れずに。
<sdk-version>3.1.0.GA</sdk-version>
< Related Posts >