Windowsフリーウェアのセットアップメモ

 このページでは、Windowsで動くフリーウェアのいくつかについて、 インストール、初期設定方法等をメモっています。


Meadow

MeadowはUNIX上の有名なテキストエディタ、EmacsのWindows版です。 バージョン1.1からはエクスプローラなどからのドラッグ/ドロップでファイルを開けるようになり、 操作性が格段に向上しました。 Vectorでダウンロードします (Meadow-1.10-i386.tar.gz)。

  1. インストールしたいディレクトリの上で、アーカイブを展開します。 ここでは、インストール位置を C:\Wintools\Meadow\1.10 としたいために、C:\Wintools で展開します。
  2. install\1.10に行き、install.exeを実行します。
  3. ホームディレクトリを尋ねられるので、入力します。 個人使用の場合は、C:\Wintools\Meadow\1.10 でOKです。
  4. 上で指定したホームディレクトリ、ここではC:\Wintools\Meadow\1.10 に .emacsを書いておきます。このファイルは宙で書くのは難しいので、 Webで先達のTipsを集めて自分オリジナルの.emacsを作ります。 私もこのような.emacsを作っています。
以下、主なメモです。
  • ホームディレクトリは、レジストリ
    \\HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Meadow\1.10\Environment
    
    の属性「HOME」で定義します。パス区切り文字は \ でも / でも構いませんが、 ドライブ名(C:)は必ずつける必要があります。
  • 以前のMeadowでは、.emacsはISO-2022-JP(JISコード)で書かなければいけませんでした。 今もそうなのかな?
  • デフォルトでは、日本語フォントが1.5倍の幅で表示されてしまうので、 上の.emacsでは このページを参考に、 フォントセットを変更しています。

Cygwin

Cygwinは、Windows上でUNIX環境(GNUソフトウェアで構成したPC-UNIX環境に近いもの) をエミュレートするソフトウェア群です。 エミュレートというのは、

  • gccコンパイラやautoconf、makeなどのGNU開発ツールをはじめ、 diff、grep、findなどなどのUNIXでおなじみの標準ユーティリティの移植
  • コマンドライン環境はbash
  • UNIXのlibcライブラリ、システムコールなどPOSIX規定の機能のエミュレート
  • シンボリックリンク、マウントなど、UNIXファイルシステムのエミュレート
などが含まれます。Cygwinでは、 cygwin1.dllというDLLがPOSIXのAPIをWindows APIに変換して実行しています。 したがって、Cygwinのgccでコンパイルしたプログラムは、 cygwin1.dllがないと動作しません。ただし、gccでのコンパイル時に -mno-cygwin オプションをつけると、cygwin1.dllを必要としないEXEをビルドしてくれます。

Cygwinは元々Cygnus Solutionsという企業で開発されていましたが、 RedHatに買収されたため、現在は RedHatで開発が行われています。 ここでインストールしたCygwinのバージョンは、1.3.6.6 です。

  1. Cygwinのソフトウェアは全体ではたいへん巨大です。 そこで、トラフィックの軽い場所や時間を狙ってネットワークインストールを行います。 ダウンロードページで 「setup.exe」をダウンロードします。
  2. setup.exeを起動すると、小さなウィンドウが現れ、 まずインストールパスを聞いてきます。 ここで「C:\」とすると、それは危ないからというので警告されます。 最も一般的なインストールパスは「C:\Cygwin」(/cygwin)です。 ここでもこの位置を入力しました。
  3. 初期インストールしたいソフトウェアを適当に選択してチェックボタンにチェックを入れていきます。 cygwinとbashは必須、開発環境を考えるなら gcc、make、fileutils はほぼ必須でしょう。他にもperlなどもダウンロードできますよ。 面倒ならできるだけ多くを選択するようにしたほうが手間が省けると思います。
  4. ダウンロードが始まるので、じっと待ちます。
  5. ダウンロードが完了すると、自動的にアーカイブの展開とインストールが行われます。
  6. 再びダイアログが現れます。 「アイコンの追加」「スタートメニューに追加」にチェックを入れると、 それぞれそのようにしてもらえます。
  7. 最後に「Install Complete」というダイアログが現れれば、 インストールは完了です。
  8. といっても、これだけでは動きません。 C:\cygwin\bin を環境変数PATHに追加する必要があります。 そして、スタートメニューかアイコンから「Cygwin Bash Shell」 を実行して、bashのようなコマンドプロンプトが出てくればOKです。 ファイルシステムの構造ですが、 Windows上での C:\Cygwin\sample\path が /sample/path というように対応しています。 Cygwinの「外の」一般のWindowsファイルシステムにアクセスするには、 「/cygdrive/c」が C:\ に相当します。 しかし、Cygwinのドキュメントでは、 Windows一般のアプリケーションがCygwinファイルシステム内にアクセスすることや、 CygwinアプリケーションがWindows一般のファイルシステム内にアクセスすることについて、 できるだけしないように警告しています。


MinGWとMSYS

 Minimalist GNU for Win32 (MinGW)は、 GNU GCCコンパイラとヘッダファイル、バイナリユーティリティ(GNU binutils) その他のビルドツールをMS-Windows環境に移植したもので、 Windowsネイティブの実行形式をビルドすることができます。 上記のCygwinとよく似ていますが、CygwinはCYGWIN.DLLという、 POSIXエミュレーション・レイヤーDLLを介して実行を行うのに対し、 MinGWではビルドされた実行形式はMS謹製のコンソールランタイム (MSVCRT.DLLとCRTDLL.DLL)を使います。 CygwinとMinGWの違いは(私のように)混同している人が多いためか、 このページで丁寧に説明されているので、 ゼヒ一読されることをお勧めします。

 MinGWと同じwww.mingw.orgで開発されているパッケージにMSYS (Minimal SYStem)とゆーものもあります。 MinGWはほんとにコンパイラとその周辺ソフトウェアだけなので、 例えばGNUのフリーウェアを「configure→make→make install」 しようとするとハタと困ってしまいます。 gzip、tar、sedやawk、findなどなど、そしてもちろんinstallというコマンドがないと、 configure→make→make installの仕組みはうまく動きません。 そこでMSYSの出番。MSYSはごく簡単に言うと、 UNIX開発環境を構築するに足るフリーウェア群(GNU awkやGNU fileutilsなど) をMinGWのgccであらかじめビルドしてくれたもの(.exe)が入っている、 とても便利なパッケージです。 MinGWを使ってGNUフリーウェアをインストールする場合などは、 MSYSも必須となるでしょう。

 なにはともあれ、MinGWとMSYSを導入してみます。 ここで試した環境は、Windows XP Home Edition、MinGW-2.0.0、MSYS-1.0.7です。

  1. www.mingw.orgから、 MinGW-2.0.0-3.exe と MSYS-1.0.7-i386-2.exe をダウンロードします。
  2. MinGW-2.0.0-3.exe を起動します。 インストール位置を聞かれるので、適当に指定します。ここでは C:\Wintools\Mingw と指定したとします。
  3. 自動的にファイルがコピーされて、MinGWインストールは終了です。
  4. MSYS-1.0.7-i386-2.exe を起動します。 こちらもインストール位置を聞かれるので、適当に C:\Wintools\msys\1.0 などと指定します。
  5. GUIのインストールが終了した後、今度はコマンドプロンプトが出現し、 MinGWのパスを聞いてくるので、ディレクトリ区切りをスラッシュ(/) で指定するのを忘れずに、C:/Wintools/mingw のように入力してENTERを押します。 これで、MSYSのインストールも完了です。

 MSYSもCygwinと同じように、独自の仮想的なファイルシステムを持っています。 そのルートディレクトリ(/)はMSYSのインストールディレクトリ、 上の例でいえば C:\Wintools\msys\1.0 で、 その下のWindowsファイルシステム上のパスがそのままMSYSファイルシステムでもたどれます。

 いくつか例外があります。まず、/c/... や /d/... のようなパスは、 その文字のドライブのルートディレクトリからの絶対パスに自動的に変換されます。 また、MSYSは擬似的なマウントの仕組みも持っています。 /etc/fstab (C:\Wintools\msys\1.0\etc\fstab) をテキストエディタで見ると、

C:/Wintools/MinGW /mingw 

のように書かれているはずです。これすなわち、 C:\Wintools\MinGW がMSYSのファイルシステム上では/mingwに見えるという意味です。 そこで、/etc/fstabを編集して、例えば

C:/Wintools/MinGW /mingw 
c:/usr/watasi /home/watasi

とすれば、C:\usr\watasi が MSYSのファイルシステム上では /home/watasi に見えます。ただし、普通のUNIXのマウントポイントと同じく、 MSYS上でのマウントポイント (上の例では /home/watasi = C:\usr\watasi) は、事前にmkdirコマンドで空ディレクトリとして作っておく必要があります。

 次にホームディレクトリ(環境変数HOME)の設定をします。 これはもちろんコントロールパネルのシステム詳細設定で指定してもいいのですが、 msysのルートディレクトリにある「msys.bat」の中に、

set HOME=C:\usr\watasi

という方法が簡単なので私はこちらを使っています。

 準備が整ったら、MSYSの端末エミュレータをいよいよ起動してみます。 ここで「/bin/sh.exe」「/bin/rxvt.exe」「msys.bat」の3つの起動方法がありますが、 普通は msys.bat を使います。msys.bat の中では、 sh.exe か rxvt.exe を実行する際に、 --loginオプションによって、PATHの先頭に /usr/bin、/usr/local/binなどの、 MinGWやMSYSのプログラムへのパスが自動的に追加されるので便利なためです (sh.exeやrxvt.exeを直に起動するとこれらがセットされないので、注意が必要です)。 ちなみにそのPATHなどの設定をデフォルトで行うためのスクリプトは /etc/profile です。 上で設定した自分のホームディレクトリに .profile ファイルを作って置いておけば、 そちらが読み込まれます。

 ちょっと注意というかはまったことですが、 MSYS環境のPATHにCygwinのbin(C:\cygwin\bin)が入っていると、 MSYSのsedの動作がおかしく、 なにやら一時ディレクトリに作成したファイルのパスが開けないとかいってエラーになるので、 GNUのconfigureがついているフリーソフトウェアの一部がコンパイルができない (Makefileを作れない) という現象があります。 これを避けるには、素直にCygwinのbinをPATHから外します。

この後ろはちょっと古い、MinGW-1.1のインストールメモです。

  1. 上記リンクから、MinGW-1.1.tar.gzをダウンロードします。
  2. インストールしたいディレクトリで展開します。 例えば、gccコンパイラのパスが C:\cygwin\usr\local2\bin\gcc.exe となるようにしたければ、 C:\Cygwin\usr\local2 というディレクトリを作ってそこに移動し、
    shell$ tar xozf /the/path/of/MinGW-1.1.tar.gz
    
    でOKです。
  3. そして、忘れずにこのbinディレクトリに環境変数PATHを通しておきます。 ここで、MinGWを使うシェルがCygwinのbashである場合は、 Cygwinファイルシステム内のパスにします。 例えば上記のパスで Cygwinの/(ルートディレクトリ)が C:\Cygwin である場合には、ホームディレクトリ(Cygwin環境でのログインユーザのホームディレクトリ) の .bash_profile ファイルで
    PATH=/usr/local2/bin:${PATH}
    export PATH
    
    とパスに追加しておきます。

Misc. Topics Top

(first uploaded 2002/01/27 last updated 2003/03/15, URANO398)