cygwinの話
cygwinのページと言うよりは、自分の苦労を忘れないための記録。
- 動機
- 今まで学校の研究はLinux上でg++、でも普段はWindowsと言った具合で、g++を使いたい場合は、わざわざLinuxを立ち上げなおしていた。
- 自分の使うPCが変わったのを気に、Linuxを入れるのが面倒になり、いちいちWindowsからLinuxに切り替えるのが面倒だったのも手伝って、研究をWindows上でやろう、と考え始めた。
- コンパイラを変更するのがまた面倒になって挫折し掛けたが、cygwinはそれほど遅くないと言う話を聞いて、cygwin上でg++と言う方向で行くことに。
- 目標
- 今までのLinux上での環境からプログラムの変更なしに以降。
- ファイルサーバー上にある自分のhomeの利用。自分のPCにhomeと同じ内容のものを置かない。
- 手順
- cygwinをインストール(省略)
- cygwinのパスはWindowsのパスとは独立してるので、cygwinから使うWindowsのプログラムにはパスを通すなり、aliasするなりする。Program Files等、途中でスペースが含まれるディレクトリは、"で囲まなければならないのが面倒。デフォルトでこんなディレクトリ名にすんなや>Windows
- マイネットワーク(ネットワークコンピュータ)上の //ファイルサーバー/自分のhome/ をネットワークドライブに割り当て(私はz:)。
- ln -s z: /home/自分/ としても良かったが、パスをOSやhostnameによって切り替えるのが面倒だったので、 /home/自分/ はローカルに作り、必要なディレクトリだけシンボリックリンクを作った。
- 自分のPCにおけるWindowsのユーザー名とパスワードをファイルサーバーと共通にしている。こうしないと、ネットワークドライブの割り当て先に移動しようとした時にPermission Deniedとか言われて、マイネットワークからアクセスしてパスワード入力をしなければ移動できない面倒があったはず。
- 注意
- 2002年8月の段階で、cygwinのターミナルでSJISとEUCが両方通るものは確認していない。私はその辺が面倒だったので、プログラムの出力から日本語を排除(結果を見るのにlessを使うため)。日本語が含まれるものはxyzzyで開くことにしている。ソースをいじらない、と言う目的は達成できず。
- cygwinでオートログアウトが働いたとき、cygwin.batから起動していると、バッチ処理を終了しますか?(Y/N)といちいち聞かれて答えるのが面倒くさい。そーゆー場合は、ssh-agent.exe /bin/tcsh -lとか何とかやればOK。ただしこの場合だと、シミュレーションプログラムなど、高負荷のものが動いているとcygwinが立ち上がるまでに少々時間が掛かる。さらに、私の今の環境では、なぜか最初にgrepが実行される。気持ち悪いが害はないので放置。
- 疑問
- 普通のLinuxと同様に、ホームはファイルサーバーのものをマウント、と言った具合にできないのだろーか。Linuxのその辺はほとんどいじったことがないのでよくわからん。
- cygwinの入ってるPCにssh等でログインできるよーにならんのだろーか。できると遠隔操作ができて楽チンなんだが。