PATHの優先順位に気をつけよう
Emacs 24をビルドするのに、新しいバージョンのAutoconfとAutomakeが必要だったのでインストールしたのですが、それでもうまくいかず悩みました。(というかそもそもAutomakeが入らない)
何が原因かというと、インストール先に指定した/usr/local/bin
より、元からある/usr/bin
のほうが優先されていた、というだけの話。もちろんPATHが通っていないというのはすぐに思いつきましたが、
$ PATH=$PATH:/usr/local/bin $ export PATH
というようにやって原因でないと判断していました。これは現在のPATHの末尾に新しいものを追加しているのですが、PATHは先頭にあるほうが優先されるんですね。ですから、
$ PATH=/usr/local/bin:$PATH $ export PATH
としなくてはなりません。気をつけましょう(ぼくが)。
今回はEmacs 24のautogen.shを動かすのが目的なので、最新のAutoconfとAutomakeはそのセッションでだけ有効になればよかったのですが、せっかくなので.bashrcに上のを追記。
ちなみに僕の.bashrcはこんな感じになってます:
export PS1="[ 33[33m]w[ 33[0m]$ " export CLICOLOR=1 export LSCOLORS=DxGxcxdxCxegedabagacad export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin source ~/.pythonbrew/etc/bashrc source ~/.pythonbrew/bin/virtualenvwrapper.sh VIRTUALENVWRAPPER_PYTHON=py2.7.2 alias emacs='/Applications/Emacs24.app/Contents/MacOS/Emacs -nw'
プロンプトはいろいろ試したりしたのですが、結局シンプルなのに落ち着きました。
参考までに、Emacs最新開発版(Emacs 24)のインストール手順(OSX Lion)も残しておきます。
# 作業ディレクトリはどこでもいいけど、/usr/local/srcがUNIX的らしい(よくわかってない) $ mkdir /usr/local/src $ cd /usr/local/src $ wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz $ tar -xzvf autoconf-latest.tar.gz $ cd autoconf-2.68 #この時点では2.68が最新版でした $ ./configure --prefix=/usr/local $ make $ make install $ cd ../ $ wget http://ftp.gnu.org/gnu/automake/automake-1.11.tar.gz #automake-latestはないみたい $ tar -xzvf automake-1.11 $ cd automake-1.11 $ ./configure --prefix=/usr/local $ make $ make install $ cd ../ # bzrは遅いらしい(し、そもそも僕の環境に入ってない)のでgitで $ git clone git://repo.or.cz/emacs.git $ cd emacs $ ./autogen.sh #configureを作ってくれる $ ./configure --with-ns --without-x $ make $ make install $ cp -r ./nextstep/Emacs.app /Applications/Emacs24.app #アプリケーションフォルダにコピー