Homebrewな人がMercurialインストール時にカッとなった場合の対処方法

2連投、いい調子のy_echoです。こんばんは。

プライベートのとあるリポジトリを触るために必要なMercurialMacPortsやめたので、こいつも再インストールです。

brew install hg...あれ??

brew install mercurial · Issue #3825 · Homebrew/legacy-homebrew · GitHubとのことです。

ググるといくつか解決策が見つかるんですが、

  • もろもろを~/homebrewで管理するべく心に決めたばかり
  • Perlはperlbrewで~/perl5に気持ちよく管理中

なので、何の考えもなしに普通にインストールはしたくありません。よもや禿コマンドなんぞ...

ここらへんでカッとなったわけです。

pythonbrewでPython環境を管理すればよさそう

UTAHTAさん、素晴らしすぎます。

Pythonistaな方々はすでにご存知のツールかもしれませんが、ぼくはPython疎いので知りませんでした...perlbrewと同じ感覚で管理できるのであれば、学習コスト分もお得なので、今回はこいつで解決することにします。

pythonbrewをインストール

詳細なインストール手順は作者UTAHTAさんの記事など参考にしてもらうとして、ここではざっとログるのみとします。

[y_echo@MacBook ~]% curl -kLO https://github.com/utahta/pythonbrew/raw/master/pythonbrew-install
[y_echo@MacBook ~]% chmod +x ./pythonbrew-install
[y_echo@MacBook ~]% mkdir -p ~/python/pythonbrew    # perlbrewのdir構成と同じにする
[y_echo@MacBook ~]% export PYTHONBREW_ROOT=~/python/pythonbrew 
[y_echo@MacBook ~]% ./pythonbrew-install

これで~/python/pythonbrew/配下にごっそりインストールされたのを確認した後、.zshrcに以下を追記しておきます。

### .zshrc
...
## perlbrew
source $HOME/perl5/perlbrew/etc/bashrc    # 元からあるperlbrew用の設定

## pythonbrew
source $HOME/python/pythonbrew/etc/bashrc    # 今回新しく追加したpythonbrew用の設定

設定をzshに反映して確認してみます。

[y_echo@MacBook ~]% source ~/.zshrc
[y_echo@MacBook ~]% which pythonbrew 
pythonbrew () {
        __pythonbrew_find_command "$@"
        case $command_name in
                (use) __pythonbrew_use "$@" ;;
                (switch) __pythonbrew_switch "$@" ;;
                (off) __pythonbrew_off "$@" ;;
                (update) __pythonbrew_update "$@" ;;
                (*) command pythonbrew "$@" ;;
        esac
        builtin hash -r
}

よさそうです。

PythonMercurialをインストール

とりあえずPythonは2.7.1にしました。

[y_echo@MacBook ~]% pythonbrew install 2.7.1
[y_echo@MacBook ~]% pythonbrew switch Python-2.7.1
[y_echo@MacBook ~]% which python
/Users/y_echo/python/pythonbrew/pythons/Python-2.7.1/bin/python

今更ながらですが、インストール時perlbrewみたいにas指定できるのであれば、適宜しておいた方が良さそうですね。switch時のタイプ量減りますし、「pythonbrew switch Python-x.x.x」って何か許せない...
追記です。githubのマニュアル読むと、switchするときはバージョン指定(つまり数字のみ)だけでもいけるみたいですね。ごめんなさいです。

最後にMercurialをインストールします。

[y_echo@MacBook ~]% which pip
/Users/y_echo/python/pythonbrew/pythons/Python-2.7.1/bin/pip
[y_echo@MacBook ~]% pip install Mercurial
[y_echo@MacBook ~]% which hg
/Users/y_echo/python/pythonbrew/pythons/Python-2.7.1/bin/hg

ということで、だいぶ寄り道した感がありますが、気持ちよく管理したいという目的は達成することができました。

補足

Pythonistaな方々はこの後virtualenvで仮想環境を構築するようです。