git導入.そして死〜
今,kernel.orgが例のあれ*1のメンテナンスで落ちているので,gitのインスコが失敗します.
困っていたんですが,HomebrewでGitのインストールが失敗する - ほげほげ(仮)
上のリンクの通りにしたらうまく行きました.
そして,
- gitのいるところを確認
$ which git /usr/bin/git
あれれ?パスが違う.
homebrewでインスコしたgitでなくXcodeについてきたgitが使用されるようになってました.
なので,すべてのMacでgitな人は今すぐバージョンを確認するべき - Meltdown Countdown rev.を参考に
- /etc/pathsを編集
/usr/bin usr/local/bin /bin /usr/sbin /sbin
から
usr/local/bin /usr/bin /bin /usr/sbin /sbin
に変更.
- PATHの優先度を確認
$ echo $PATH /usr/bin:/usr/local/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin
設定が反映されていない!!
なので,
/etc/profileを編集して元のPATHをクリアしようと,
$ sudo emacs /etc/profile
したのですが/etc/profileはread onlyなので書き込めないよとemacsに忠告されました.
sudoってルート権限を得るためのコマンドじゃないの?とまたハマりました.
実は,/etc/profileのアクセス権は-r--r--r-- だったのです.rootですら書き込み不可能!
- 所有者が書き込みができるようにアクセス権を変更
$ chmod 644 /etc/profile
- そんでもって下記のように/etc/profileを編集しPATHをクリア
path_helperにあわせてprofileを調整。
/etc/pathsファイルに/usr/binや/binが書かれているのに、元のPATHを優先する必要はない気がします。
そこで、/etc/profileでPATHをクリアしてみました。if [ -x /usr/libexec/path_helper ]; then PATH="" eval `/usr/libexec/path_helper -s` fiこれでもう一度ログインしてみると、
$ echo $PATH /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binうまくいきました!
同様に/etc/zprofile, /etc/csh.loginにも設定します。csh.login には setenv PATH "" とします。chshでbash,csh,zshにログインシェルを変更してログインし、echo $PATHが正しく設定されていることを確認します。
元のPATHを消しちゃうのはちょっと心配な気もしますが、これよりも前にPATHを追加することってなさそうなので、たぶん大丈夫でしょう。
最近のMac OSXで、PATHをスマート(?)に管理するやり方。 - こせきの技術日記
- PATHの優先度を確認
$ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/bin/git
成功しました!
ようやくPATHの優先度が反映されました.
リンク先の人たちありがとう.