blog.hekt.org

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 #アプリケーションフォルダにコピー