トップ 検索 一覧 差分 ソース ヘルプ RSS ログイン

今更MinGW(4)

bashの更新

MSYSのCurrent(現行バージョン:MSYS-1.0.11)に含まれるbashはバージョン2.04であり、非常に古い。なんと1999年、今から9年前のコピーライト表記だ。

$ sh --version
GNU bash, version 2.04.0(1)-release (i686-pc-msys)
Copyright 1999 Free Software Foundation, Inc.

最近ではこのせいでconfigureに失敗する物が出てきている。Technology Previewという形でbash3.1が利用出来るので差し替えよう。2008/04/03追記:なお、ネットには2.05あたりのMinGW用bashが転がっていたりするが、これも問題を起こす場合があるので猫科研究所では採用しない。

MinGWのリリースページのTechnology Preview: MSYS-1.0.11からbash-3.1-MSYS-1.0.11-1.tar.bz2を取得し、展開しよう。

$ tar xfvj bash-3.1-MSYS-1.0.11-1.tar.bz2

ここで、MSYSのターミナル(コマンドプロンプト)自体が使用しているsh.exeを置き換えるため、MSYSのターミナルは閉じる。

Windowsのエクスプローラなどで、MSYSのbinディレクトリ(標準ではC:\msys\1.0\bin)にあるsh.exeをsh_old.exe等と適当にリネームする。その上で上記の展開したディレクトリを丸ごとMSYSのディレクトリに合わせて(binがbinに上書きされるように)上書きする。

これでsh.exeが更新され、ついでにbash.exeの名前でもインストールされる。MSYSを再度起動し、確認してみよう。

$ sh --version
GNU bash, version 3.1.0(1)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.
$ bash --version
GNU bash, version 3.1.0(1)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.

上記のような表示がなされればOKだ。

元のバージョンに戻したい場合は、sh.exeを先に保存しておいたsh_old.exeと差し替えればよい。

最終更新時間:2008年04月03日 18時16分12秒