README 20.2 for Cygwin B20.1 Release.


インターネット上での Cygwin 情報源

FTP サイト

一次 FTP サイトは `ftp://go.cygnus.com/pub/sourceware.cygnus.com/cygwin/' です。ミラーサイトがいくつかあります。

The Cygwin Project WWW Site

Cygwin プロジェクトのメインの WWW ページは `http://sourceware.cygnus.com/cygwin/' です。

ツール固有の情報が含まれているページは `http://www.cygnus.com/pubs/gnupro/' です。

さらなるドキュメントへのリンクはメインの web ページからアクセスできます。

インストール手順

内容

以下のパッケージがフルリリースの中に含まれています。

開発ツール: binutils, bison, byacc, dejagnu, diff, expect, flex, gas, gcc, gdb, itcl, ld, libstdc++, make, patch, tcl, tix, tk

ユーザツール: ash, bash, bzip2, diff, fileutils, findutils, gawk, grep, gzip, m4, sed, shellutils, tar, textutils, time

user tools のリリースは、ユーザのツールのみが含まれます。

これらのツールに対してソースコードが全て利用可能です。これは上記の二つ の部分に別れています。

バイナリリリースのインストール:

重要! 古いバージョンの Cygwin ツールを間違って実行してしまわない ように、$PATH 環境変数上から全て削除するのを忘れないでください。

上記の ftp サーバの中のどれかに接続し、最新のリリースが置いてあ るディレクトリに cd します。一次サーバ上では以下の場所になります:

`ftp://go.cygnus.com/pub/sourceware.cygnus.com/cygwin/latest/'

もしあなたが開発ツールと GNU configure 機構を実行するのに必要な プログラムが欲しければ、全バイナリリリース `full.exe' ダウンロードしなければなりません。もしユーザツール(上記のリスト に挙げられているもの)だけに関心があるのであれば、その代わりに `user.exe'をダウンロードしてください。

ネットワークコネクションの信頼性が低いときは、代りに小さな塊に分 割されたバイナリをダウンロードしてください。分割 cdk インストー ラは、`full-split'サブディレクトリからファイルを取得し てください。ダウンロードが終わったら、コマンドプロンプトから以下 のようにして分割ファイルを結合してください。

copy /b xaa + xab + xac + ... + xai + xaj full.exe
del xa*.*

ユーザツールに対しても同様の手順で行えます。

インストール実行プログラムがあなたのシステムに入ってしまえば、実 行するだけです。まず最初に、インストーラはこのリリースのインストー ルに必要な一時ファイルを展開する場所を訊いてきます。ほとんどの人 はデフォルトで良いでしょう。

次にインストール場所を選ぶように聞いてきます。デフォルトでは `<system-drive>:\cygnus\cygwin-b20' です。もし 希望があれば、ご自由に他の場所を選んでください。

最後に、ショートカットを追加する Program Files フォルダの名前を 聞いてきます。デフォルトでは、インストーラは `Cygnus Solutions' というフォルダの中に `Cygwin B20' とい うエントリを作成します。このステップが完了すると、ツールのインス トールを行って終了します。

この時点で、スタートメニューの中に "Cygwin B20" があって、それを 選択することができるでしょう。これは全ての特別な環境変数を設定し て bash シェルを立ち上げてくれます。もしあなたが Windows 95 か 98 を使っていて、"Out of environment space"というエラーメッセー ジに直面してしまったら、config.sys の中の環境変数領域の量を増や す必要があります。そしてもう一度試してください。C: がシステムドライブであれば、shell=C:\command.com /e:4096 /p という行を追加することでこの細工を行ってくれるはずです。

この後にはあと2つやるべきことが残っています。第一に、mkdir -p /tmp とタイプして、この場所に一時ファイル用のディレク トリを必要とするプログラムのために、その存在を保証しておく必要が あります。

第二に、もしあなたが全ディストリビューション (`full.exe')をインストールしたのならば、さまざまなプロ グラムが`/bin/sh' を見つけられるようになっている必要が あります。`mkdir -p /bin' を行って、 `sh.exe' のコピーをそこに置いてください。古いバージョンのものがあったら削 除してください。`mount' ユーティリティを使って、どのド ライブが`/' としてマウントされるかを選ぶことができます。 `mount' についてのより詳しい情報は Frequently Asked Questions (FAQ) を参照してください。

もしこのツールをアンインストールしたいと思ったときには、コントロールパ ネルの「アプリケーションの追加と削除」("Add/Remove Programs")によって できるでしょう。

ソースコードのインストール

このリリースに対応するソースコードをダウンロードする前に、上記の 最新リリースのツール(全リリースかまたはユーザツールのみのどちら か)をインストールしなければなりません。

ソースコードの住処となるディレクトリを作成し、そこに `cd' し ます。

上記の ftp サーバの中のどれかに接続し、最新のリリースが置いてあ るディレクトリに cd します。一次サーバ上では以下になります:

`ftp://go.cygnus.com/pub/sourceware.cygnus.com/cygwin/latest/'.

ユーザツールのソースコードが必要ならば、 `user-src-split' サブディレクトリに`cd' し、そ こにあるファイルをダウンロードしてください。開発ツールのソースが 必要なら、`dev-src-split' サブディレクトリに `cd' して、そこにあるファイルをダウンロードしてください。

Windows のコマンドシェルに戻ります。ユーザツールのソースの場合:

copy /b xba + xbb + xbc + xbd + xbe + xbf + xbg user-src.tar.bz2
del xb*.*
bunzip2 user-src.tar.bz2
tar xvf user-src.tar

開発ツールのソースの場合:

copy /b xca + xcb + xcc + xcd + ... + xck + xcl dev-src.tar.bz2
del xc*.*
bunzip2 dev-src.tar.bz2
tar xvf dev-src.tar

どちらも `src' というディレクトリの中に展開します。

これで終わりでしょう…。

Beta 20 Update (Nov 20 1998)

これは Beta 20 リリースに対するバグ修正のアップデートです。

主な変更は Cygwin ライブラリの改善版ですが、ツール類に対する小さ な変更もいくつか行われています。

各ツール毎の変更:

gcc の "-mno-cygwin" フラグが正しいヘッダをインクルードするよう になりました。20.0 では、Cygwin ヘッダを間違ってインクルードして いました。

gcc の "-pipe" フラグが正常に動作するようになりました。

cygcheck プログラムが、cpp を見つけられないのは正しい振る舞いで ある、ということをユーザに保証するようにしました。

md5sum の "-b" フラグが、バイナリファイルに対して正しいチェック サムを生成するために使われるようになりました。

bash シェルがテキストを読み込んだ後にファイルサイズを調整するよ うになりました。

コンパイラツールのソースに libtermcap ライブラリが追加されました。 これは termcap ライブラリと /etc/termcap ファイルの新しいソース です。

less ページャ(libtermcap を使用したもの)がバイナリ配布ファイルに 含まれるようになりました。

Cygwin API (cygwin.dll) の変更:

このバージョンの Cygwin は、beta 20、19 リリースと後方互換性があ ります。Windows 9x 上での動作はより安定したものとなり、9x 上での configure に関するバグ(NT でも多少の影響があった)も修正されまし た

CYGWIN 環境変数の値の最初に、二つのスペースを入れておく必要があっ たバグは修正されました。

select 呼び出しにおけるシリアルサポートが修正されました。

非 cygwin アプリケーションからロードされる DLL の扱いが改善され ました。dlopen のバグが修正されました。

sysconf 関数に _SC_CHILD_MAX を渡して得られる値は、 _POSIX_CHILD_MAX (3) ではなく CHILD_MAX (63) になりました。

パスに関する小さなバグがいくつか修正されました。"mkdir a/" が失 敗する原因も修正されています。

インクルードファイル sys/sysmacros.h が追加されました。不足して いた wcslen と wcscmp のプロトタイプが wchar.h に追加されました。

__P が include/sys/cdefs.h の中で定義されるようになりました。こ の最後の修正をサポートするために、トップレベルの Makefile.in は CC_FOR_TARGET と CXX_FOR_TARGET を別々に設定するようになりました。

Cygwin は、次の newlib のベッセル関数をエクスポートするようにし ました: j1、jn、y1、yn

tty の ioctl オプションがいくつか追加されました: TCGETA、TCSETA、 TCSETAW、TCSETAF

いくつかの関数で、NULL ポインタ参照の対処がよりきれいになりました。

#! を通したときの相対パスによる実行の問題を修正しました。

Release Beta 20 (Oct 30 1998)

これは Beta 19 リリースからの大きなアップデートです。EGCS ベース のコンパイラや最新版ツールに加えて、このリリースには、前回からの たくさんの改良とバグ修正を含む新しいバージョンの Cygwin ライブラ リが含まれます。

プロジェクトの名前が新しくなりました!

このリリースより、"GNU-Win32" の名前を引退させることになりました。 また Cygwin32 から "32" を外すことにしました。つまり、ツール類の ことを "Cygwin ツールセット"、ライブラリを "Cygwin ライブラリ" あるいは "Cygwin DLL"、ライブラリのインタフェースを "Cygwin API" と呼ぶことになります。

この名前の変更のおかげで、"Cygwin32" という名前に関係するライブ ラリの外観は全て変更されます。例えば、CYGWIN32 環境変数は CYGWIN 環境変数になりました。cygwin32_ で始まる API 関数は、バックワー ドコンパチビリティのために、この形でもまだ利用できますし、同時に 新しい cygwin_ 接頭辞付きの名前でも利用できます。同じことがプリ プロセッサ定義が __CYGWIN32__ から __CYGWIN__ に変わったことにつ いても言えます。将来のリリースではこの古い名前は削除されますので、 ほんのちょっとだけ時間を割いて頂いて、この "32" を削除してくださ るようお願いします。これによって引き起こされる混乱をみなさんにお 詫びいたします。この名前を "Bob" にしても良かったんですが、その 名前はすでに Microsoft に取られていたので… :-)

なぜ変更したか、ですか? 一つには、この配布物に含まれるソフトウェ アは、Cygwin ライブラリ自身も含めて、 GNU のソフトウェアではない ものがあるからです。従って、このプロジェクトを "GNU-Win32" と呼 ぶことは、常にちょっとだけ間違っています。それに加えて、"Cygwin ライブラリ" を使うこれらのツールを "Cygwin ツール" と呼んだ方が、 より混乱が少ないだろうと考えたからです。

また、sourceware.cygnus.com という新しい立派な web/ftp サイト上 に移った、ということもお知らせしてしておきます。古いアドレスはし ばらくの期間(不定)は有効です(できれば、少なくとも全てのミラーが 修正されるまで)。

各ツール毎の変更:

最新の正式な EGCS リリースが、Cygwin 配布で使用される基本のコン パイラになりました。つまり、x86/Cygwin 関連のパッチがいくつか入っ た EGCS 1.1 が、このリリースに入っているコンパイラです。

UNIX プログラムの移植よりも Windows ネイティブな開発に興味がある 人にとっては、新しい gcc のフラグ "-mno-cygwin" によって最新の Mingw32ライブラリがリンクされ、Cygwin を使用しない実行形式を生成 する、ということは朗報でしょう。

その他の開発ツールは、全て最新のバージョンにアップデートされまし た。リンカ(ld)にはたくさんの重大なバグ修正が入っています。DLL か ら .reloc セクションを安全に strip することが可能になりました。 windres リソースコンパイラは大きく改善されました。

Beta 20 には、ash-0.3.2-4、bash 2.02.1、 grep-2.2、 ncurses 4.2、 less 332 といったたくさんのパッケージのアップグレードも含まれて います。bzip2 0.9.0 を配布に含めました。また、df ユーティリティ が、fileutils パッケージからの仲間に加わったことにも気がつくでし ょう。

sh の実行バイナリは従来通り、Debian Linux ディストリビューション からの ash ですが、Beta 19 リリースで問題のあったクォーティング のバグはもう無くなりました。bash で Control-C を行っても、バック グラウンドの処理を止めてしまうことが無くなりました。

Tcl/tk はバージョン 8.1a2(と追加パッチ)にアップグレードされまし た。tix と itcl の互換性のあるバージョンが含まれています。これら には全て Cygwin 版の configure ファイルも含まれているので、Win32 版 tcl/tk の UNIX 風の構築を行うことができます。expect はCygwin 用追加パッチの入った 5.26 にアップグレードされています。

お客様のご意見とご要望にお応えして、Cygwin は、GDBtk や WinGDBよ りもより良い GDB のグラフィカルなフロントエンドを開発しました。 この tcl ベースの GUI は、GNUPro ツールキットのお客様に現在出荷 されています。この GDB に対する変更の仕掛と GDB に組み込まれた tcl インタープリタは、GPL ベースのソースの一部です。ですが、tcl のスクリプトは現時点ではネットワーク上では利用できません。このた め、この Cygwin リリースでは、コマンド行バージョンの gdb のみし か入っていません。

DJ Delorie は、"cygcheck" という新しいプログラムを書いてくれまし た。このプログラムは、ある実行バイナリがどの DLL をどこからロー ドするか、などといった、Cygwin 環境がどのように設定されているか に関する有用な情報を表示してくれます。これによって、よくある設定 上の問題の診断が簡単になると願っています。

ps ユーティリティがアップグレードされています。出力フォーマット を長くしたり短くしたりするなど、いくつかのオプションがつきました。

Cygwin API (cygwin.dll) の変更:

このバージョンの Cygwin は、beta 19 リリースと後方互換性がありま す。古い "cygwinb19.dll" を消してしまい、"cygwin1.dll" を "cygwinb19.dll" にコピーすれば、B19 でコンパイルされた古い実行ファ イルを新しい "cygwin1.dll" で使用することができます。

Cygwin の内部では、かなりの部分が、さまざまな問題を解決するため に書き直されたり、修正されたりしています。もし何か特定の問題につ いて疑問がある場合は、開発ツールソースの中の winsup/ChangeLog ファ イルに、過去 3 年間に渡って DLL に施されてきた修正が全て記載され ています。以下に要点をいくつか示します。

Cygwin のバージョン番号付けに新しい体系を使うようになりました。 DLL、API、共有メモリ領域インターフェース、レジストリインタフェー スのそれぞれに個別のバージョン番号がつくようになっています。これ で、一つのユーザ環境に複数の Cygwin ツール群を共存させることがよ り簡単になるだろうと思います。

Windows 98 がサポートされています(Cygwin の視点から見れば、 Windows 95 と同じようなものです)。それでも Windows NT にアップグ レードすることをお薦めしますが。

Cygwin の実行速度については、まだ改善すべきことがたくさん残って いますが、B20 のリリースに先立っていくらか改善の努力を施しました。 恐らく最新バージョンの Cygwin は、今までの中で最速であると思いま す。それに加えて、ファイルのオープン・クローズや tty の使用に関 連する、厄介なハンドルリークをいくつか塞ぎました。

lseek 呼出しは WriteFile を使うようになり、EOF を越えた書き込み が行われたときのギャップは、Win32 の仕様にあるように「未定義」の データが残されるのではなく、0 で埋められるようになりました。

Cygwin ヘッダファイルの大きく改善する作業が行われました。

UNIX 風のシリアル I/O のための Cygwin サポートが、より改善されま した。

パスの扱いは、再度修正、書き直しが行われています。デフォルトでは、 UNIX のパーミッション・実行状態を格納するのに、NT の拡張属性を使 うことは無くなりました。これは、FAT パーティション上に NT が作成 するファイルは、数千のファイルの規模に耐えられないからです(全て がのろのろと遅くなってしまう)。

シグナルの扱いについても、かなり注目するものがあります。しかし残 念ながら、タイマーと Windows 9x の組み合わせではまだいくつか問題 が残っています。

tty の数は 16 から 128 に上げられました。

DLL に含まれた新しい API: sethostent、endhostend

上で述べたように、cygwin32_ の接頭辞のついた関数は全て、cygwin_ の接頭辞付きでエクスポートされるようになっています。あなたのプロ グラムを、この新しい名前の関数を呼び出すように調整してくださるよ うお願いします。

`遅い'デバイスの read において、signal が正しく制御されるように なりました。すなわち、read は EINTR を返します。

B20.1 リリースにおける既知の問題、潜在的な問題

Windows 95 が固まる

この問題は b19 ではさらにひどかったかもしれませんが、Win 95 上の bash で Control-C すると、Win 95 のカーネルをロックさせ、あなた のマシンをフリーズさせてしまうことがあります。この問題は、もしあ なたが Win 95 の OSR2 を使っているのであれば、OSR2 CD か MSDN 購 読 CD に含まれる USB パッチをインストールすると直ることがありま す。OSR2 とそのUSB パッチに関するさらなる情報は `http://www.compuclinic.com/osr2faq/index.html' にあり ます。

引数において // 形式のパス名を扱えないプログラムがある

gcc や他のツールは、現在のパス名の形式に完全には適合していません。 UNIX パッケージを configure/ビルドしようするときに絶対必要となる -I//d/foo という引数は通用しません。このときは、一つだけのスラッ シュによる通常のパスのみが使われます。

Geoffrey Noer noer@cygnus.com


This document was generated on 7 December 1998 using the texi2html translator version 1.51.