2009年6月26日金曜日

【port / MacPorts】古いバージョンのパッケージをインストールする方法

いつも大変便利に使わせてもらっているMac OS Xのパッケージ管理システム port ですが、旧バージョンのパッケージをインストールしようとして若干ハマったので解決方法をメモしておきます。

やりたかったこと


Ruby1.8.7-p174 がインストールされているマシンに Ruby1.8.7-p72 を追加して、必要に応じてバージョンを切り替えたい。

$ port installed ruby
The following ports are currently installed:
ruby @1.8.7-p174_0+thread_hooks (active)

失敗した方法


通常の install コマンドにバージョン指定を加えて実行してみましたが、うまくいきません。

$ sudo port install ruby @1.8.7-p72
→失敗

うまくいった方法


よくよく調べてみると、公式サイトにやり方がのってました

  1. 欲しいパッケージのリビジョン番号を調べて

  2. そのリビジョンのPortFileを手動でダウンロード

  3. で、インストール


なるほど簡単ですね。早速リポジトリブラウザを開いて lang > ruby と辿り、画面右上の Revision Log からリビジョン番号を突き止めます。(ちなみに今回は 48382 でした。)
リビジョン番号さえ判明すればあとは簡単。subversionでファイルをダウンロードして、インストールするだけです。

$ cd ~/Downloads
$ # リビジョン指定でcheckout
$ svn co -r 48382 http://svn.macports.org/repository/macports/trunk/dports/lang/ruby ruby1.8.7-p72_3
$ cd ruby1.8.7-p72_3
$ # インストール済みの Ruby を無効化しておく
$ port deactivate ruby
$ port install

これでお目当てのバージョンをインストールすることができました。ホッ。
アプリケーションの依存などで過去のバージョンが必要な場合には、この方法を参考にしてみてください。

1 件のコメント:

  1. MacPorts (Snow Leopard) でPHP 5.2.13をインストールしようとしたらエラー → 一応解決

    photo credit: sporras MacPorts (Snow Leopard)を使ってPHP5.2.13をインストールしようとしたら次のようなエラーが発生してしまいました。 $ sudo port -d install php52 +apache2 +mysql5 +pear (中略) Undefined Undefine...

    返信削除