dmg からインストールした Git を Emacs で使うためにパスを通す
さて、3エントリー連続 Git ネタです。あんまり同じネタが続くのは本望ではないのですが、後輩からいくつか質問されたので、ここにメモを残しておきます(情報はシェアしないとね)。
+git: command not found ...だと...!? +git の場所を指定して実行する +パスを通す <<
環境は次のとおりです。Mac 限定でごめんなさい。あと、Cocoa Emacs じゃなくてごめんなさい。おそらく Cocoa Emacs にも共通するハナシだと思うのですが、試していないので何とも言い切れません。
-MacOSX 10.6(Snow Leopard) -Emacs 22.3(Carbon Emacs) -Git 1.7.4
※今回のエントリーの内容は Git 公式サイトから dmg ファイルをダウンロードしてインストールした Git を対象にしています。他の方法で(例えば、MacPorts から)インストールした Git についてはこの限りではありません。 <<
*1. git: command not found ...だと...!?
ええと、まず、Emacs に何も設定していない状態だと、Emacs から
|| M-x shell ||<
でシェルモードに移行し、
|| bash-3.2$ git --version ||<
とかコマンドを打っても、
bash: git: command not found <<
と返ってきて Git が使えません。まずはここからスタートです。
*2. git の場所を指定して実行する
(Emacs ではなく)ターミナルから次のコマンドを実行してください。git の場所を確認できます。
|| $ which git ||<
前述のとおり dmg ファイルからインストールした Git であれば、
/usr/local/git/bin/git <<
と返ってくるはずです。
そうすると、Emacs からでも
|| bash-3.2$ /usr/local/git/bin/git --version ||<
と、git の場所を指定してコマンドを打てば、
git version 1.7.4 <<
と正常に返ってくるはず。しかし、毎回毎回 git の場所を指定してコマンドを打つのも面倒なので、あらかじめ Emacs に git の場所を教えておく必要があります。この作業を「パスを通す」といいます。
*3. パスを通す
パスを通すには、Emacs の初期化ファイル(~/.emacs もしくは ~/.emacs.el。最近は ~/.emacs.d/init.el なんかな?)に下記を追加します。環境変数 PATH に「/usr/local/git/bin」を追加するという内容です。
|lisp| ;; パスを通す (setenv "PATH" (concat '"/usr/local/git/bin:" (getenv "PATH"))) ||<
初期化ファイルを保存後、Emacs を再起動してシェルモードで
|| bash-3.2$ git --version ||<
とすれば、今度は正常に
git version 1.7.4 <<
と返ってくるはずです。やったね。
なお、次のコマンドで現在の環境変数 PATH に何が入っているのか確認できます。
|| bash-3.2$ printenv PATH ||<
おそらく下記のようになっているはず。
/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11R6/bin:/opt/local/bin <<
各要素は「:」によって区切られるので、「/usr/local/git/bin」と「/usr/bin」と...「/opt/loca/bin」が入っていることを確認できます。
やったね。
*予告
さて。実はこのあと、もうひとつ
Emacs からだと、git log でログが途中までしか表示されません... <<
という質問も受けていたのですが、これについてはまた今度書きます。できるだけ早く...
**(2011月6月15日 追記)
つづきを書きました。
-Emacs のシェルモードで git log を最後まで表示させる <<
*2011年6月16日 追記
コメントをいただきましたので、追記します。
今回パスを通す作業が必要となったのは、dmg ファイルからインストールした Git というよりもむしろ Emacs 側に原因があります(ターミナル以外から起動した Emacs はターミナルの環境変数を引き継いでいない)。
にもかかわらず dmg ファイルからインストールした Git にハナシを限定した理由は、MacPorts からインストールした Git が /opt/local/bin にインストールされて、かつ Carbon Emacs がデフォルトで /opt/local/bin にパスが通っているため、今回のような作業が不要だったからでした。
この点もきちんと書いておくべきでした。失礼しました。
余談ですが、僕が Emacs を本格的に触るようになったのは id:tomoya さんの下記記事を見たのがきっかけです。その id:tomoya さんから直接コメントをいただけるなんて、大変光栄です。これからもどうぞよろしくお願いします。
-Emacs ビギナーに贈る、これからバリバリ使い隊!!人のための設定講座 その1。 - 日々、とんは語る。
*参考サイト