MS-Windows+Cygwinによる天文データ処理ソフト開発環境の構築

濱部 勝@日本女子大学理学部数物科学科 (hamabe@fc.jwu.ac.jp)
Previous Update: 2001-03-02(時々修正しています)
Last Update: 2005-04-30 (link切れなどを少しだけ修正)

少し修正しかけましたが、情報が色々古くなっているので、本格的に 修正するのはあきらめました。
この文書も一応は残しておきますが、 こちらを見ていただいたほうが 良いと思います。


Cygwinで何ができるか?

CygwinをinstallするとWindows上で、UNIX-likeな環境が作れます。
従って、UNIXでできるような様々なことが可能になりますが、私が便利だなと 思ったこととしては、例えば といったことがあります

また、pgplotGrWinを用いて 移植されたものがあり、Cygwin環境で使えます(一部機能に制限がある)。

日本語化はごく一部しかされていないようです。このほかにパッケージを探し てきてインストールすれば、emacsやTeXなども使えるようです。

Cygwinのinstall

以下では、CygwinをDドライブにinstallするものとします。(実際にはどこで もかまいません)

まず、CygwinのミラーFTPである、 会津大学 あるいはRing Server(例えばここ)から、 setup.exeを入手します。
ダウンロードしてきたら、setup.exeを実行します。 実行するとWindowがでてきますので、[NEXT]をクリックします。クリックする と新しいWindowが現れ、インストール手順を訊いてきます。 インストール手順には

の3通りあり、もちろん2番目が一番単純ですが、ここでは1番目でファイルを ダウンロードし、その後3番目の手順でインストールするものとします。
2番目をチェックし[NEXT]をクリックすると、再度新しいWindowが現れ、Local Package Directoryを訊いてくるので、適当なすでに存在するディレクトリを 指定します。ここでは、D:\Cygwin_src を指定することにします。指定したら [NEXT]をクリックします。
更に新しいWindowが現れ、今度は の選択肢が表示されます。通常は1あるいは2番目で良いのではないかと思います。
2番目を選んで[NEXT]をクリックすると、Download sitesのリストが現れるの で、会津大やRingサーバなど国内の近くのサイトを選んで、[NEXT]をクリック します。
今度はパッケージの選択のリストが出ます。ここで取捨選択ができますが、私 は何もしないでデフォールト(全パッケージ選択、ソースファイルなし)のまま にしました。
[NEXT]をクリックすると、ダウンロードが始まります。
ダウンロードが完全でない時には、再度試みるかどうか訊かれるので、サイト を換えて、不足分をダウンロードすることができます。

ダウンロードされるファイルの総量は40MB〜50MBの程度です。

ダウンロードが完了したら、再度 setup.exeを実行します。
今度は最初の選択肢のところで Install from Local Directory を選びます。

次に、Local Package Directoryを訊かれるので、先程のディレクトリ (ここではD:\cygwin_src)を指定し、[NEXT]をクリックします。
今度は Select install root irectoryのメニューが現れます。デフォールト では C:\cygwin になっているはずですが、十分な空きを持ったディスクのディ レクトリを選択します。ここでは、 D:\cygwinを使うことにします。
[NEXT]をクリックすると再度パッケージの選択メニューが出るので、[NEXT]を クリックするとインストールが始まります。
インストールが終わると

という選択肢が現れるので、好きな方を選んで[NEXT]をクリックすればCygwin のインストールは終了です。

2001年2月2日に会津大学からファイルをダウンロードしインストールしてみた ところ、ダウンロードしたファイルと、それを使ってインストールしたCygwin を併せて206MBほどのディスク容量を使いました。

ダウンロードしたファイル(つまりD:\Cygwin_srcの中身)は消してもかまわな いと思いますが、更新に備えて残しておいた方が後の手間が省けると思います。

Cygwinの実行

まず、d:\cygwinをのぞいて見ると、 その下に、
             bin, etc, lib, sbin, tmp, usr, var
といったUNIXで見慣れたディレクトリがあるのが判ります。つまり、cygwinの 中に、UNIXがinstallされているような感じになっています。
この時点では、homeがまだありません。

Cygwinを実行する前に、確認しておいた方が良いことがあります。
それは、Windowsにログインした時のユーザ名です。Windowsでは日本語が標準 で使えるので、ログインユーザ名も日本語で「浜部 勝」等となっているかも 知れません。しかし、Cygwinはログインユーザ名をそのままCygwinのuser-ID として使うので、日本語のユーザ名はあまり都合よくありません。
Cygwinを実行する前にアルファベットのユーザ名で Windowsにログインしなおしておいた方が良いと思われます。

Windowsにログインしなおしたら、Cygwinを起動します。
このときに\Cygwinディレクトリの中にhomeディレクトリ、更にその下にユー ザのホームディレクトリが作られます。

Cygwinを実行するとWindowが開き、例えば

mhamabe@VORTEX ~
$
という感じで、ユーザ名@マシン名 ~(ホームディレクトリ)が表示され、プロ ンプトが表示されます。
SHELLは、GNUで標準的なbashになっています。

pwd, df等のUNIXのコマンドが使えるので試してみると面白いかも知れません。

D:\cygwinの外へも

            cd D:
などとして問題なく出られます。

installしておくと便利そうなもの

rxvt

Cygwinを使ってみるとすぐに感じると思いますが、CygwinはいわゆるDOS窓で 実行され、その窓が黒字に白の文字になっているのがかなり見づらいと思いま す。
こんな時には
X無しでも使える rxvtを使うと良いようです。

私は、このrxvtをinstallし、更に、

      #!/bin/bash
      rxvt -fn "Lucida console-14" -e bash -login
というスクリプトを /usr/local/bin/xtem として置いて使っています。 ちょうどxtermのように使えてとても便利です。
白地に黒の文字になること、また、DOS窓と違ってウィンドウのサイズが変え られる点が良いです。

Meadow

やっぱりemacsがないと...という場合にはMeadowをinstallするのがよさそう です。
私は
ここ を参考にしてinstallしました。

まずは、Meadow-1.10-i386.tar.gzをftp.m17n.orgあたりからダウ ンロードします。
そして、これを適当なところで展開します。(私は、D:\で展開しました) するとMeadowというディレクトリができるので、その中のinstall.exe(私の場 合、D:\Meadow\1.10\install.exe)を実行します。
.emacsを読み込むディレクトリを訊かれるので、それには適当なディレクトリ を答えます(私はCygwinのホームディレクトリ D:\cygwin\home\mhamabeにしま した)。
これで、スタートメニューからたどってMeadowが使えるようになりますが、私 は、デスクトップにもアイコンを置いて、アイコンのプロパティで作業ディレ クトリを上記のホームにしました。
.emacsは私の場合は、上記の和歌山大学のページを参考にしたり、過去の資産 (?)を参考にして、とりあえずは以下のようにしています。

(set-language-environment "Japanese")
(set-default-coding-systems 'sjis-dos)
(mw32-ime-initialize)
(setq default-input-method "MW32-IME")

(add-hook 'mw32-ime-on-hook
   (lambda () (set-cursor-color "maroon")))
(add-hook 'mw32-ime-off-hook
   (lambda () (set-cursor-color "black")))
(setq-default mw32-ime-mode-line-state-indicator "[--]")
(setq mw32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))

(cond (window-system
       (setq hilit-mode-enable-list
             '(not text-mode)
             hilit-background-mode     'light
             hilit-inhibit-hooks       nil
             hilit-inhibit-rebinding   nil)
       
       (require 'hilit19)
       ))


また、Cygwinから実行するために

 #-------------emacs--BEGIN--------------------
 #!/bin/sh
 export TERM=CMD
 export SHELL=bash
 for i in $*
 do
 ARG=`echo $i | sed 's/^-.*//g'`
 if [ "$ARG" != "" ]
 then
 ARGS="$ARGS `cygpath -w $ARG`"
 else
 ARGS="$ARGS $i"
 fi
 done
 /cygdrive/d/Meadow/1.10/bin/Meadow.exe $ARGS
 #-------------emacs--END---------------------- 
というスクリプトを作りました。これを/usr/local/bin/emacsという名前にし ています。(このスクリプトはYahooの掲示板から持ってきました)

もちろん(?)Meadowでは、WindowsのIMEで日本語の文章の編集もできます。

日本語対応less

日本語対応されたlessは こ のページから貰ってきてinstallすることができます。

残念ながら、上記のrxvtでは日本語の表示ができませんが、DOSプロンプ ト(つまりCygwinを実行して現れるWindow)では日本語の表示が可能です。

less-340-iso248-imd2-cygwin1.1.tar.bz2 を貰ってきた場合、installは

        cd /
        tar xvfz less-340-iso248-imd2-cygwin1.1.tar.bz2
とすれば、lessが /usr/local/binにinstallされます

日本語を表示するためには、.profileファイルに

        export JLESSCHARSET=japanese-sjis
という行を加えておきます。

CFITSIOのコンパイル

Cygwinではgccコンパイラが使えるのでcfitsioをコンパイルできます。

どこでコンパイルしても構わないのですが、ここでは/softというディレクト リの中で作業することにします

例えば以下のようにすればOKなはずです

mkdir /soft
cd /soft
tar xvfz cfitsio2100.tar.gz
cd cfitsio
./configure
make
Cのテストプログラムは
make testprog
でコンパイルできます。実行は
./testprog.exe
CygwinではFortran(g77)も使えるので、テストプログラムのコンパイル/ 実行は、
g77 testf77.f libcfitsio.a
./a.exe
libcfitsio.aは
cp libcfitsio.a /usr/lib/
として、/usr/libにコピーしておくとよいと思います。(おそらくヘッダファ イルも/usr/includeへ)

SAOimage DS9のinstall

SAOimage ds9はWindows でも使えるFITSブラウザで、非常に便利なものですが、installしてCygwinと 同時に使おうとしたら問題が生じました。

具体的には、上記のようにinstallしたCygwinの実行中にはDS9が正常に起動し ません。また、DS9を実行中にはCygwinを使えません。

よく調べてみた結果、
DS9もCygwin環境でコンパイルされているが、cygwin1.dllの バージョンが最新版でない
ということが判りました。

私がこの問題を回避した手順は以下のとおりです。

PGPLOTのinstall

GrWinを用いて コンパイルされたPGPLOTはここの、「インストールの方法 (Cygwin 1.1.x の場合」に従えば簡単にinstallできます。

ソースからのインストールもできますが、makemakeがちゃん としたMakefileを吐出してくれません(なぜか途中で切れてしまいまし た)。makemakeだけをLinux等で行ってから、それをCygwin環境にコピーしてコ ンパイルすればできるようでした。
(まあコンパイル済みのものを使わせてもらえば良いと思いますが)

GrWin版のPGPLOTの制限(他のUNIX環境で使えるのにCygwinで使えない機能)は pgdemo1からpgdemo17を順に試してみれば判ります。

(補足)GrWinの作者の溜渕@静大理さんによれば、下記の 不具合の多くは、Windows NT/2000を使用することで解決できる そうです

例えば

問題はpgdemo4。画像表示に若干制限があるようです。
何ができて何ができないのかもう少し詳しく調べる必要があります。

(補足) WindowsNTで実験してみました。
WindowsNTの場合、UNIX版のPGPLOTとの大きな違いは、 pgdemo4だけのように見えます。 2枚目の図の色もついています。ただし、やはりX以外のキーは効きません。 要するにカラーパレットをインタラクティブに変えることができないようです。
pgdemo17のムービーもかなりスムーズに見えます。pgdemo12とpgdemo13の ウインドウサイズの問題はありますが、実用上支障ないと思います。

GNU Fortranについて

Cygwinに含まれるgccはほぼ最新のものなので、g77 Fortranコンパイラも含ま れています。

そしてこのg77は いわゆるFortran77ではなく、Fortran77に 加えてFortran95の機能もかなり採り入れられています

例えば 京都大学総合 人間学部基礎科学科の冨田博之先生のページにある例題プログラムのかな りのものがそのままコンパイル可能です

Fortran95(の一部)の機能まで使って、かつ自由形式でプログラムを書きたい 場合には、

              g77 -ff90 -ffree-form xxx.f
という感じでコンパイルすると良さそうです。
上の場合、a.exeという実行ファイルが作られ、
              ./a.exe
で実行することができます。

Fortran95の機能のうちでまだ実現されていないものとしては、例えば

などがあるようです。

上記、富田先生の例題プログラムで、コンパイルできないプログラムの例とし ては、第6章から第9章までのプログラムがあります。他のものは、ほとんどが (若干の手直しが必要な場合もありますが)コンパイルおよび実行可能でした。