MacPortsを使って特定のバージョンをインストールする(nodejs編)

macports_nodejs_version 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 >