Cygwin+puttyでGitを使えるようにするための手順

先日、あの濱野さんの『入門Git』を購入して勉強しようとしたのですが、コマンド入力で使おうとした場合、Windows上でスイーっと使用できる環境が未だ無いという事を思い知りました。

Windows上ではCygwinを使う方法とmsysgitを使う方法があるのですが、CygwinはGitの最新バージョンが使えないけど環境設定がいじれる、msysgitはGitの最新バージョンが使えるけど環境設定がしづらい、ということで、前者のCygwinの方法を取りました。

方針としては、puttyからCygwinをいじれるようにし、ソースやGitのコミットコメントもVIMで編集できるようにします。要するにputtyのウィンドウ上で全てを完結できるようにします。

なお、これから紹介する環境は、Gitを学習する上で私自身がストレス無く動作することを目的としたものです。ですので、実務に適応できる環境かどうかは不明ですし、他のプログラムに不具合が起こる可能性も否定できません。責任を持てませんのでご了承下さい。

1.Cygwinのインストール

これは説明いりませんね。もちろんgitのパッケージもインストールしてください。

2.CygwinUTF-8

UTF-8 Cygwin」からcygwin1-dll-20-11-18.tar.bz2をダウンロードし、解凍して出来たcygwin1.dllを、Cygwinの/binディレクトリに上書きコピーします。これだけでUTF-8化完了!

この方はソースを書き換えてUTF-8に対応して下さっています。感謝してもしきれない程です。

※圧縮ファイル名はその時点でのcygwin1.dllのバージョンによって違うと思われます。Cygwinの公式サイトにcygwin1.dllの最新バージョンの番号が掲載されていますので(中程の"Install or update now!"の下)、それと見比べて一致するものと置き換えてください。

3.各設定ファイルを編集

バイナリ的にはUTF-8化が完了したと言っても、まだ完璧ではありません。設定が必要です。

以下の内容を各ファイルに追加します。

■~/.bashrc

export LANG=ja_JP.UTF-8
export LESS=MrXEd
alias ls='ls -F --show-control-chars --color'  la='ls -a'  v='ls -l'

lessとlsに関する設定ですが、要はLESSの'r'とlsの'--show-control-chars'が必要だそうです。ですので私はlsに'--color'を付けましたが、色付けがウザいという場合は外してもOKです。

■~/.inputrc

set convert-meta off
set output-meta on

■~/.vimrc

set encoding=utf-8
set fileencodings=utf-8,iso-2022-jp,euc-jp,cp932
let $LANG='ja'

本家の解説では、fileencodingsの先頭はiso-2022-jpになってますが、それだとGitのコミットコメントが文字化けするので変更しました。でも原理は分かってないという(笑)

■補足

これまでの設定をしても、OSによっては、lsコマンドのグループ表示が文字化けしている場合があります。これを解消するには、Cygwinの/etc/groupを編集し、「なし」を「None」に変更します。Vistaは元からNoneらしいです。

ちなみに、Cygwinにmoreコマンドが無いとお嘆きの場合は、次の一行を~/.bashrcに追加すると悩みが解消されるかも。

alias more="less '-E -P?f--More-- (%pb\%):--More--.'"

他にも使っていて不具合がある場合は、本家の解説をご覧下さい。

4.CygTermのインストール

これはターミナルからCygwinに接続するためのツールです。コマンドプロンプトCygwin標準のやつだと何かと不便なので、puttyから接続出来るようにします。

まず公式サイトからCygTermをダウンロードします。

場所はどこでも良いので解凍したら、Makefile内のBINDIRの値を/usr/local/binと編集した後、make→make installでインストールします。

するとCygwinの/usr/local/bin以下に二つのファイル(cygterm.exe, cygterm.cfg)が出来ているので、cygterm.cfgを以下のように編集します。

TERM = C:\(puttyディレクトリ)\putty.exe -load "cygterm" -telnet %s -P %d
TERM_TYPE = xterm
PORT_START = 20000
PORT_RANGE = 40
SHELL = /bin/bash --login -i
ENV_1 = MAKE_MODE=unix
ENV_2 = HOME=/home/(ユーザー名)
5.puttyの設定

puttyのセッションを作成します。バージョン0.58-JPで確認しました。

・ホスト名:127.0.0.1プロトコルTelnet
・セッション名:cygterm(cygterm.cfgの-loadで設定した文字列)
・端末→行規則オプション→ローカルエコー:強制的にオフ
・端末→行規則オプション→ローカルライン編集:強制的にオフ
・端末→特徴→遠隔操作の端末サイズ変更を無効にする:チェックを付ける
・ウィンドウ→変換→受信されるデータの文字セット変換:UTF-8(CJK)
6.実行

最後にもう一つ。cygtermはcygwin1.dllが見えないと起動できませんので、環境変数でパスを通しておきます。C:\cygwinにインストールした場合はC:\cygwin\binです。

いよいよ起動です。/usr/local/bin/cygterm.exeを実行します。ショートカットを作成しておくと楽でしょう。

お疲れ様でした。