全力で怠けたい

怠けるために全力を尽くしたいブログ。

Mercurial をホームディレクトリにインストールする

背景

評価用に Mercurial を一般ユーザーのホームディレクトリにインストールしたので、備忘録までに。
状況としてはディストリビューションがものすごく古い、一般ユーザー権限しか持っていない、パッケージ管理コマンドが使えない…といった良くあるもので、条件は以下のような感じ。

  • ソースからインストールする
  • 一般ユーザーのホームディレクトリにインストールする
  • 今回インストールしたマシンは Ubuntu (古い)
  • HTML / man 形式のヘルプテキストは不要 (hg help が使えれば良い)

依存関係

SupportedPythonVersions - Mercurial *1
※HTML/man 形式のヘルプテキストが必要な場合は Docutils もインストールする必要がありますが、今回は hg help で賄えるのでインストールしません。

Mercurial
- Python
|- zlib |- bzip2

ソースアーカイブの取得

アーカイブ形式は tar.gz として *2 ~/src にダウンロード。バージョンは以下のとおり *3

インストール

*4

# zlib
$ cd ~/src
$ tar zxvf zlib-1.2.8.tar.gz
$ cd zlib-1.2.8
$ ./configure --prefix=$HOME
$ make
$ make install

# bzip2
$ cd ~/src
$ tar zxvf bzip2-1.0.6.tar.gz
$ cd bzip2-1.0.6
$ make -f Makefile-libbz2_so
$ make
$ make install PREFIX=$HOME

# make で -fPIC オプションを指定しろ〜と言われた場合には
# Makefile-libbz2_so の CFLAGS に追加する。
# (ex.) CFLAGS=-fPIC (省略) 

# Python
$ cd ~/src
$ tar zxvf Python-2.7.6.tgz
$ cd Python-2.7.6
$ ./configure --prefix=$HOME
$ make
$ make install

~/bin にパスを通すために ~/.bash_profile を編集。

# ~/.bash_profile
export PATH=~/bin:$PATH

続いて Mercurial をインストール。

# Mercurial
# HTML / man 形式のヘルプテキストは不要なので make install-home-bin
$ cd ~/src
$ tar zxvf Mercurial-3f83fc5cfe71.tar.gz
$ cd Mercurial-3f83fc5cfe71
$ make install-home-bin

確認

$ hg version
Distributed SCM (version 2.9.2)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2014 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

まとめ

依存関係の解決等、もっときちんとしたやり方があるはず。
パッケージ管理コマンドは偉大。

謝辞

不正確な記述、冗長な手順について指摘して下さった @ さん、ありがとうございました><

*1:ちなみに Python をインストール時に readline 等なども足りないと言われるが Mercurial を使う分には不要っぽいので入れていない

*2:展開コマンドを揃えたかっただけ

*3:Mercurial のバージョンがデバッグ版だとの指摘を頂いたので訂正しました

*4:ファイル名、ディレクトリ名は適当に読み替える