MacPorts を Lion 版にする

Mac Ports で Spider Monkey をインストールしようとしたらツリーが古いっておこられる。おんじゃと思って selfupdate を実行してもダメ。あれ?:-(

$ sudo port -v selfupdate
Warning: port definitions are more than two weeks old, consider using selfupdate

      • > Updating the ports tree

Error: Synchronization of the local ports tree failed doing rsync
Error: /opt/local/bin/port: port selfupdate failed: Couldn't sync the ports tree: Synchronization of 1 source(s) failed

MacPorts で selfupdate が何とかと言われたときの解決方法 を参考にしつつ実行してみた。

sudo port -d selfupdate
sudo port upgrade outdated
sudo port upgrade installed

MacPorts で selfupdate が何とかと言われたときの解決方法


port upgrade outdated を実行すると、古いソースを全部コンパイルし直すんだろね、すっげー時間がかかる。1時間以上はかかった。しかも困ったことにエラーでこけて終わる。原因不明。分かってるのはエラーメッセージだけ (T^T)

Warning: No port p5.12-error


原因なんだろなーとしばらく悩んだけど、Snow Leopard から Lion にしたのが原因と割り切って Mac Ports を入れ直すことにした。こーゆーときは初期インストールし直すのが手っ取り早い。無料だし。:-)

まずは古い Mac Ports をアンインストール。関連ライブラリの置き場所がリストアップされてたので一緒に削除する。ついでに ~/.bash_profiles に MacPorts 用パスが追加されてたのも削除する。

$ sudo port -fp uninstall --follow-dependents installed
$ sudo rm -rf \
/opt/local \
/Applications/DarwinPorts \
/Applications/MacPorts \
/Library/LaunchDaemons/org.macports.* \
/Library/Receipts/DarwinPorts*.pkg \
/Library/Receipts/MacPorts*.pkg \
/Library/StartupItems/DarwinPortsStartup \
/Library/Tcl/darwinports1.0 \
/Library/Tcl/macports1.0 \
~/.macports

2.5. Uninstall


お次ぎに Mac Ports for Lion をダウンロード。


dmg を実行。インストールが終わったら、selfupdate を実行。

sudo port -v selfupdate

さっそく Spider Monkey をインストール

$ port list | grep spidermonkey
spidermonkey @1.7.0 lang/spidermonkey
...
$ sudo port install spidermonkey


お試し実行

$ type js
js is /opt/local/bin/js
$ js
js> 1+1;
2
js> var str = "Spider Monkey";
js> typeof str
string
js> print(str)
Spider Monkey
js> quit();


おし。動いた! :-)

検証環境