(toppers-users 3297) Re: TOPPERS/ASPはWindows7でもBuild可能でしょうか

yasuo kominami(nifty) ykominami @ nifty.com
2010年 11月 22日 (月) 16:15:07 JST


小南と申します。


2010/11/22 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:
> 杉本さま
>
>  バイナリをダウンロードして解凍しました。再度、ダウンロードしなおしましたが同じです。
>

私は、Windows Vista SP2でcygwinを使っています。
Windows 7では確認できないのですが、Vistaでの挙動は以下の通りです。

1.bashからtarやunzipなどで解凍した(伸長+展開した)ファイルには、ls -lで見たときにパーミッションが付いている。

2.
2.1 bashから、cpコマンドでコピーしたファイルには、ls -lで見たときに元のファイルと同一のパーミッションが付いている。
2.2 コピー後のファイルに対しては、chmoでパーミッションを変更できる。
2.3 コピー前のファイルがcygwinとは関係ないwindowsプログラムが作成したファイル(例:エクスプローラでコピーした、IEでダウンロードした、圧縮解凍ファイルで解凍したなど)であれば、chmodでパーミッションを変更できない。

3.cygwin用にコンパイルされたプログラムをbashから呼び出し、そのプログラムが出力したファイルに対しては、chmoにより、パーミッションを変更できる。

4.逆に、cygwinとは関係ない普通のWindow用プログラムが作成したファイルは、ls -lでみると'---------'であり、chmodで変更できない。

5.ls -l で'---------'と表示されるどんなファイルに対しても、常に読み込むことが出来る。

cygwinは、Windows
OS上でUnixライクなシステムコールをエミュレートします。そのためにcygwin用にコンパイルされたプログラムは、エミュレートを行う特別なDLLを呼び出します。

このような仕組みのため、UnixライクなパーミッションはWindows OSには存在せず、このDLL内でエミュレートしていると私は推測しています。

したがって、cygwinを使う時は、bashからcygwin用のコマンド、プログラムを呼び出すという(cygwinに閉じた)使い方の方がトラブルが起こりにくくなると思います。

ファイルをDL後に解凍されたというのは、Windowsのエクスプローラか、Windows用の圧縮解凍プログラムを用いられたのでしょうか。

もしそうであれば、bashから、cygwinのtarなり、unzipなりを呼び出して解凍されてみてはどうでしょうか。