トップ 検索 一覧 ヘルプ RSS ログイン

今更MinGW(4)の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!bashの更新
MSYSのCurrent(現行バージョン)に含まれるbashはバージョン2.04であり、非常に古い。
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のリリースページ|http://sourceforge.net/project/showfiles.php?group_id=2435]の
Technology Preview: MSYS-1.0.11からbash-3.1-MSYS-1.0.11-1.tar.bz2を取得し、
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等と適当にリネームする。
Windowsのエクスプローラなどで、MSYSのbinディレクトリ(標準ではC:\msys\1.0\bin)にある''sh.exe''をsh_old.exe等と適当にリネームする。
その上で上記の展開したディレクトリを丸ごとMSYSのディレクトリに合わせて
(binがbinに上書きされるように)上書きする。
{{ref_image bash_update.png}}
これで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と差し替えればよい。