MacPorts+Cocoa Emacsのインストール

最近Mac mini買いました (2009年10月モデル、Core 2 Duo 2.53GHz, Snow Leopard)。初Macなのでいろいろ試行錯誤しつつ、ひとまずMacPorts+Cocoa Emacsのインストールまで完了したので、メモを残しておきます。

情報源

Xcodeのインストール

MacPortのパッケージはソースなので、開発環境としてXcodeを事前にインストールしておく必要があります。Xcodeはプレインストールされていませんが、本体に添付されている「Mac OS X Install DVD」からインストール可能です。
# 最初気づかずに、Appleのサイトから2.5GBの巨大パッケージ (iPhone SDK同梱版) をダウンロードしてしまった…

MacPortsのインストール

MacPortsとは、MacOS上のパッケージ管理システムで、FreeBSDPortsなどと同様に、ソースコードの形でダウンロード→ビルド→インストールの形を取ります。
MacPorts本体は、公式サイトの配布ページからダウンロードしてインストールするだけですが、付随していくつかの作業を行う必要があります。

  • コマンド検索パス追加: /opt/local/{bin,sbin} を環境変数PATHに追加
  • MacPorts本体とパッケージ情報の更新: sudo port selfupdate

Cocoa Emacsのインストール

Snow Leopardに標準で含まれるEmacsは、ターミナル内でのみ起動するようです。ここでは、ウィンドウとして起動するCocoa EmacsMacPortsから入れてみます。

MacPortsで利用可能なパッケージを検索するには、port searchコマンドを使います。

> port search emacs
...
emacs @22.3 (editors)
    The GNU Emacs text editor (command line only)

emacs-app @23.1 (aqua, editors)
    The GNU Emacs text editor (Cocoa version)

emacs-app-devel @20091101 (aqua, editors)
    The GNU Emacs text editor, recent CVS development version
...

検索結果が多数表示されますが、Emacs本体はこの3種類のようです。このうち "emacs" はコマンドライン専用ということで、ひとまず "emacs-app" を試してみました。

> sudo port install emacs-app

しかしながら、コンパイル途中で以下のエラーが出てインストールに失敗orz

dispextern.h:1250: error: array type has incomplete element type

ググってみると、どうやらSnow Leopardemacs-appの組み合わせで既知の問題のようです。
#20936 (emacs-app fails to build on Snow Leopard) – MacPorts

そこで、もう1つの "emacs-app-devel" (いわゆる開発版?) を試してみたところ、今度はインストールに成功。…で、どこにインストールされたの? ということで若干ハマりましたが、以下の場所にインストールされていました。

アプリケーション→MacPortsEmacs.app (/Applications/MacPorts/Emacs.app/)

以上、ひとまず無事Emacsが起動するところまで確かめました。フォントなどの設定はこれから。