GNU Emacsをインストールする方法はいくつもある。絶対的に正しいやり方な ど存在しないから、思い思いの方法でインストールすればよい。行いたいこと によっては、特定のインストール方法を用いた方が良いこともある。今回は Emacsのインストール方法について考えてみたい。ただし、あくまで自分にとっ てどのような方法が適切かを考えるのであって、インストール方法を網羅した りするつもりはない。

注意 :: 特別な断りなくEmacsと表現した場合、それはGNU Emacsのことだと考えてほしい。

配布されているバイナリをインストールする

GNU Emacsはコンパイル済みのEmacsのバイナリのインストール方法を公式ウェ ブサイトで説明している。おそらく現時点ではこれを用いる方法が最も簡単と 思われる。環境毎のインストール方法が記載されているのでそれを参照すると よい。

https://www.gnu.org/software/emacs/

GNU/Linuxではディストリビューションによって採用しているパッケージマネー ジャーが異なる。上記のウェブサイトでは主要なパッケージマネージャーを用 いたインストール手順を記述している。

Windows用にはコンパイル済みバイナリを配布している。ファイルを配置しているFTP サーバーへのリンクを記述が記述されているため、そこからバイナリをダウン ロードしインストールできる。またMSYSユーザーのためにpacmanを用いたイン ストール方法を記述している。

macOS用にはHomebrewとMacPortsを用いたインストール方法を説明している。 またコンパイル済みバイナリとして Emacs For Mac OS X を提供しており、 そのウェブサイトへのリンクもある。macOS上で単純に最新のEmacsを試したい なら、このコンパイル済みバイナリを用いることもできる。

配布されているコンパイル済みバイナリを用いる問題点

通常の機能を使用するだけであればコンパイル済みバイナリを用いることに特 に問題はない。Emacsにはコンパイル時にオプションを指定することで、拡張 可能な機能が幾つか存在する。コンパイル済みバイナリでは、これらの機能が 無効化された状態でコンパイルされていることがあるため、その場合無効化さ れた機能は使えない。

例えばEmacsにはWebkitのサポートがありGTKやCocoaを用いてそれを表示でき る。何ができるかというと、Emacs上でウェブブラウザの機能を使用できる。 macOS用にWebkitサポートのCocoa実装が取り込まれているが、コンパイル済み バイナリではその機能は無効化されている。もしこれを使用したいのであれば、 Emacsをコンパイルしなおすしかない。

EmacsをmacOS上でソースコードからコンパイルしインストールする

先程述べた理由から、私は手動でコンパイルしたEmacsを用いている。 xwidget-webkitは絶対に使用したいからだ。Homebrewを用いれば自分のコン ピューター上でコンパイルしたものをインストールもできるが、Homebrewの流 儀を学ぶ必要が出てくる。私がしたいことは、Emacsを拡張機能を有効にして コンパイルしたいだけであって、Homebrewについて学びたいわけではない。そ のため、手動でソースコードを取得し、コンパイルし、それをインストールし て使用している。ここではその手順を記載する。

おそらくコンパイルするためには、Xcodeのインストールの一般的に開発に必 要なツールを整備する必要がある。ここでは、それは既に済んでいることを前 提としている。また依存しているライブラリのインストールについても記述し ない。それぞれのやり方のインストール方法があるからだ。必要なものが足り なければ、コンパイルの手順中にエラーメッセージとして表示される。それら をインストールし、環境変数などの設定を適切にする必要があるだろう。依存 ライブラリは自分でコンパイルしてインストールしても良いが、こだわりがな ければHomebrewやMacPortsでインストールしても問題ない。

ソースコードの取得

まずはソースコードを取得する。 Github上にミラーリポジトリがあるので今回はそこから取得した。 とりあえず最新のソースだけでよいので --depth 1 を指定している。

git clone --depth 1 [email protected]:emacs-mirror/emacs.git

ソースコードからビルド

cloneできたらディレクトリを移動する。

cd emacs

configure を作成するために autogen.sh を実行する。

brew install autoconf
brew install texinfo
brew install imagemagick
brew install gnutls
./autogen.sh

Makefile を作成するために configure を実行する。 コンパイルオプションはここで指定する。

./configure --with-mailutils --with-ns --with-modules --with-pop --with-xwidgets --with-imagemagick
指定したオプション
–with-mailutils
–with-modules
–with-ns
–with-pop
–with-xwidgets
–with-imagemagick
–with-json

ビルドする。

make

インストール

make install を実行する。これが完了するとnextstepディレクトリに Emacs.app が作成される。macOS用のスクリプトでは、これを行っても /Applications にアプリケーションがコピーされることはない。Emacsが起 動して適切に動作するために必要なソースコード内にあるEmacs Lispのコード がこの時点で生成される Emacs.app の中にコピーされるため、この手順は 必ず必要だ。

make install

生成された Emacs.app/Applications に手動で移動する。

バージョンの確認

./img/emacs-version.gif
バージョンの確認

macOS上でビルドする時にリンカーでエラーが出た場合

ビルドすると以下のようなエラーが出ることがある。

emacs macOS Undefined symbols for architecture x86_64:

シンボルを見つけられていないのが問題である。 CPPFLAGSやLD_LIBRARY_PATHなどの値がおかしなことになっていないか確認すると良い。

Homebrewで入れていたものを読み込ませるために色々と設定していたがそれらを削除したら解消した。