分子ビューアのPyMOLをインストールしたので,そのときのメモ.今回は無料版をコンパイルするということでMacPortsからインストールしたのだが,FinkやHomebrewからもインストールすることができるようだ.

MacPortsによるインストール

通常のMacPortsのインストールの手順と同じで,以下のようにすればインストールすることができる.

1
$ sudo port install pymol

tclのバリアントによるエラー

のだけれども,自分の環境でMacPortsからそのままインストールを行うと以下のようなエラーが出た.

1
2
3
4
5
6
7
8
9
$ sudo port install pymol
--->  Computing dependencies for pymol
--->  Fetching archive for pymol
Error: org.macports.archivefetch for port pymol returned: tcl must be installed without +corefoundation.
Please see the log file for port pymol for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_science_pymol/pymol/main.log
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port pymol failed

エラーログを見ると,どうやらtclのインストールの際にcorefoundationというバリアントが付いているせいでエラーが起きているようだ.MacPortsで入れたtclを見てみると,以下のようにcorefounderとthreadsのバリアントが付いていることが確認できる.

1
2
3
$ port installed tcl
The following ports are currently installed:
  tcl @8.6.1_0+corefoundation+threads (active)

この問題は既に報告されているようだが,tclを再インストールせずにエラーを回避するのは今のところできない模様.ここにも書かれている通り,tclはRなどの他のソフトウェアでも使用するものなのでなるべく弄りたくは無いのだが,今回はやむを得ない.

ということで,以下のようにtclを一度アンインストールして,バリアントを変えた状態でインストールしなおす.tclの依存関係にある他のプログラムも一度消さなければいけない.

1
2
3
4
5
6
7
8
$ sudo port uninstall py27-pmw
$ sudo port uninstall py27-tkinter
$ sudo port uninstall tk
$ sudo port uninstall tcl

$ sudo port install tcl -corefoundation
$ sudo port install tk -quartz
$ sudo port install pymol

アンインストールするpy27-pmw,py27-tkinter,tk,tclはそれぞれ依存関係で繋がっているので,この順番でアンインストールしないといけない.また,py27-pmwとpy27-tkinterはpymolを入れるときにdependenciesの関係で自動で入れてくれるので,アンインストールした後に明示的にインストールしなおさなくても良い.

これでPyMOLがインストールできるはず.

余談

PyMOLを動かすにはXQuartzが必要になるので,あらかじめインストールしておいたほうがいいだろう.

環境

  • Mac OS X 10.9 Mavericks
  • PyMOL Version 1.6.0.0

参考