|
このページでは、Windowsで動くフリーウェアのいくつかについて、
インストール、初期設定方法等をメモっています。
MeadowはUNIX上の有名なテキストエディタ、EmacsのWindows版です。
バージョン1.1からはエクスプローラなどからのドラッグ/ドロップでファイルを開けるようになり、
操作性が格段に向上しました。
Vectorでダウンロードします
(Meadow-1.10-i386.tar.gz)。
- インストールしたいディレクトリの上で、アーカイブを展開します。
ここでは、インストール位置を C:\Wintools\Meadow\1.10
としたいために、C:\Wintools で展開します。
- install\1.10に行き、install.exeを実行します。
- ホームディレクトリを尋ねられるので、入力します。
個人使用の場合は、C:\Wintools\Meadow\1.10 でOKです。
- 上で指定したホームディレクトリ、ここではC:\Wintools\Meadow\1.10 に
.emacsを書いておきます。このファイルは宙で書くのは難しいので、
Webで先達のTipsを集めて自分オリジナルの.emacsを作ります。
私もこのような.emacsを作っています。
以下、主なメモです。
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 です。
- Cygwinのソフトウェアは全体ではたいへん巨大です。
そこで、トラフィックの軽い場所や時間を狙ってネットワークインストールを行います。
ダウンロードページで
「setup.exe」をダウンロードします。
- setup.exeを起動すると、小さなウィンドウが現れ、
まずインストールパスを聞いてきます。
ここで「C:\」とすると、それは危ないからというので警告されます。
最も一般的なインストールパスは「C:\Cygwin」(/cygwin)です。
ここでもこの位置を入力しました。
-
初期インストールしたいソフトウェアを適当に選択してチェックボタンにチェックを入れていきます。
cygwinとbashは必須、開発環境を考えるなら
gcc、make、fileutils
はほぼ必須でしょう。他にもperlなどもダウンロードできますよ。
面倒ならできるだけ多くを選択するようにしたほうが手間が省けると思います。
-
ダウンロードが始まるので、じっと待ちます。
-
ダウンロードが完了すると、自動的にアーカイブの展開とインストールが行われます。
-
再びダイアログが現れます。
「アイコンの追加」「スタートメニューに追加」にチェックを入れると、
それぞれそのようにしてもらえます。
-
最後に「Install Complete」というダイアログが現れれば、
インストールは完了です。
-
といっても、これだけでは動きません。
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一般のファイルシステム内にアクセスすることについて、
できるだけしないように警告しています。
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です。
- www.mingw.orgから、
MinGW-2.0.0-3.exe と MSYS-1.0.7-i386-2.exe をダウンロードします。
- MinGW-2.0.0-3.exe を起動します。
インストール位置を聞かれるので、適当に指定します。ここでは
C:\Wintools\Mingw と指定したとします。
- 自動的にファイルがコピーされて、MinGWインストールは終了です。
- MSYS-1.0.7-i386-2.exe を起動します。
こちらもインストール位置を聞かれるので、適当に
C:\Wintools\msys\1.0 などと指定します。
- 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 が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」の中に、
という方法が簡単なので私はこちらを使っています。
準備が整ったら、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のインストールメモです。
- 上記リンクから、MinGW-1.1.tar.gzをダウンロードします。
- インストールしたいディレクトリで展開します。
例えば、gccコンパイラのパスが C:\cygwin\usr\local2\bin\gcc.exe
となるようにしたければ、
C:\Cygwin\usr\local2 というディレクトリを作ってそこに移動し、
shell$ tar xozf /the/path/of/MinGW-1.1.tar.gz
でOKです。
- そして、忘れずにこのbinディレクトリに環境変数PATHを通しておきます。
ここで、MinGWを使うシェルがCygwinのbashである場合は、
Cygwinファイルシステム内のパスにします。
例えば上記のパスで Cygwinの/(ルートディレクトリ)が C:\Cygwin
である場合には、ホームディレクトリ(Cygwin環境でのログインユーザのホームディレクトリ)
の .bash_profile ファイルで
PATH=/usr/local2/bin:${PATH}
export PATH
とパスに追加しておきます。

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