Cygwin のインストール(setup 2.24)
概要
ここの内容は現状と大きくは違いませんが、
もはや古いので更新を計画中です。
現在のインストーラは、
以下の説明とはパッケージ選択ウインドウの表示が違います
(カテゴリ別にわけられた表示が標準)。
また、「すでにインストールされたものおよび Base カテゴリ内のパッケージ
のみダウンロード、インストールする」という仕様に変更されています。
したがって、新規インストールの場合は例えば gcc(Devel カテゴリにある)
などは明示的に指定してやる必要があるようですし、アップデートの場合も
「新規に登場したパッケージ」は、既存のパッケージのアップデートで要求されたり
しない限り、明示的に指定しないと導入されません。
Cygwin が 1.x になったとき、最初はインストーラが DOS ウインドウ上で動く
テキストベースのものでした。現在は GUI ベースのインストーラが用意されており、
tar アーカイブの取得からインストール、アンインストールがこの setup.exe だけ
で行えるようになっています。
ここでは setup.exe バージョン 2.24 で説明していますが、バージョン 2.25 でも
使い方は同じです。なお、このドキュメントは、setup.exe でのインストール手順に
大きな変更があった場合のみ更新します。
注意
- setup.exe でのセットアップ中にウインドウがどこかに見えなくなってしまう
ことがありますが、たいていは他のウインドウの裏に隠れています。
ダウンロード編
- Cygwin のセットアップ用のディレクトリを作成します。
- 先のディレクトリに、setup.exe をダウンロードします。
- setup.exe を実行します。
- ftp サーバ上のファイルを直接インストールするか、ftp サーバからダウンロード
するか、ダウンロード済みのファイルを使ってインストールするかを選択します。
ここでは"Download from Internet"を選択し、実際のインストールはあとから
行うことにします。
- ファイルのダウンロード先を選択します。デフォルトでは setup.exe と同じ
ディレクトリになります。ここで指定するのは各アーカイブを収納するディレクトリ
で、インストールディレクトリではないので注意してください。
- サーバへの接続方法を選びます。「IE5の設定を使う」「直接接続する」
「プロキシサーバを使う」の3つの方法がありますが、ふつうは
「IE5の設定を使う」("Use IE5 Settings")を選べばよいでしょう。
- サーバリストをダウンロード中。
- どこの ftp サーバからダウンロードするかを選択します。なるべく自分の
利用しているプロバイダなどがリストにあればそれを、そうでなければなるべく
近そうなところを選びます。日本からなら、jp ドメインのどこかを選ぶことに
なると思います。たまに、いくつかのファイルをダウンロードできないことが
ありますが、そういうときは時間をあけるかあとで別のサーバに接続して補完
してください。
-
サーバを選択すると、まずパッケージの情報をサーバから受け取ります。
このとき setup.exe のバージョンが古いと、そのことを知らせるダイアログが
現れます。
ダウンロード自体は継続できますが、あとで新しいsetup.exe をとってくる
のがよいでしょう。
- ダウンロードするファイルを選択します。インストールされるバージョン
(「New」の列の下)をクリックするとダウンロードするバージョン(あるいは
現在持っているファイルを保持する [keep])、ダウンロードしない
[skip]、削除する [uninstall]、のいずれかを選択することができます。
また、右上の [Prev]/[Cur]/[Exp] ボタンをクリックすると、一度にまとめて
「前のバージョン」[Prev]、「現行バージョン」[Cur]、「テストバージョン」[Exp]
を指定することができます。
ソースがダウンロード可能な場合は "Src" の列にチェックボックスが現れるので
必要に応じてチェックしておきます
(Cygwin を使うだけならまったく必要ありません)。
- ダウンロードが始まると、各アーカイブのダウンロード状況などがバーグラフで
表示されます。
- 選択したアーカイブをすべてダウンロードすると complete ダイアログが出て
ダウンロードは終了します。
続けて、もう一度 setup.exe を起動してインストールを行います。
インストール編
- アーカイブのダウンロードが終了したところで、再度 setup.exe を起動します。
- 今度は先ほどダウンロードしたものをインストールするので、
"Install from LocalDirectory" を選択します。
- 先ほどダウンロードしたアーカイブをおいている場所を選択します。
おそらく、ダウンロードする際に指定したディレクトリ名になっている
と思いますのでそのまま進行すればよいはずです。
- インストール先を選択します。ここで指定したディレクトリは Cygwin 環境での
ルートディレクトリとなります。"DefaultTextType" は改行形式の指定です。
「CR+LF」[DOS] と 「LF」[Unix] から選択できますが、UNIX アプリを動かしたり
する際に面倒なのでデフォルトの "Unix" のままにします。
"InstallFor" は、「すべてのユーザ」[All] と「自分のみ」[JustMe] から選択し、
誰が使うのかを指定します。とくに理由がなければ "All" でよいでしょう。
- インストールするアーカイブを指定します。"Skip" を選択するとそのアーカイブは
インストールされません。また、複数のバージョンをダウンロードしている場合はその
どちらをインストールするか選択することになります。"uninstall" を選択すると、
そのアプリケーションは削除されます。なお、ここでも[Prev]/[Cur]/[Exp] ボタン
を利用できます。
あとから日本語対応 less を入れるつもりなら、ここでは less をインストールしなく
てもよいでしょう。
-
インストール中は進行状況がバーグラフで表示されます。
-
デスクトップおよびスタートメニューにショートカットを作成する場合は、
それぞれのチェックボックスにしるしをつけます。二度目以降は不要でしょう。
このショートカットの実体であるバッチファイルは bash をログインシェルとして
起動するだけのものです。なお、環境変数 CYGWIN を指定する場合はこの
バッチファイル(もしくは、autoexec.bat など)を編集してやります。
-
インストール終了ダイアログ
- この後デスクトップアイコンあるいはスタートメニューから起動します。
すでに使える状態ではありますが、さらに使いやすくするために環境を整えて
いきます。
環境設定
ここでは以下の設定をします。
マウントの設定
bash のプロンプトが現れている状態で "mount" と命令すると、現在の
マウント状況が表示されます。初期状態では /usr/bin, /usr/lib, / の
3つのディレクトリについて設定されているはずです。
- Device…実際の(Windows 世界での)ディレクトリ
- Directory…マウント先の(Cygwin 世界での)ディレクトリ
- Type…"system" または "user"。
"user"になっているものは、現在使用している
ユーザが使用する場合のみに適用されるマウント指定。
- Flags…そのマウント先のファイルについて、読み書きする形式の指定。
"textmode" になっているとテキストファイルの改行コードは CR+LF になるが、
UNIX アプリを Cygwin 上で使用するときに具合がよくないことがあるので
"binmode" 指定が無難。
たとえば D: ドライブを /mnt/D にマウントするなら、
$ mkdir /mnt
$ mkdir /mnt/D
$ mount -b -s D: /mnt/D/
mount コマンドの -b オプションは "Flags = binmode" でマウントするという
意味であり、 "-s" オプションは "Type = system" としてマウントするという意味
です。
inetd.exe のための設定
inetd.exe を利用してリモートログインなどができるようにするには、
- /etc/passwd
- /etc/group
- /etc/inetd.conf
最低これだけのファイルを確認する必要があります。他にも必要なものはあるはずで
すが、コマンドが生成してくれるものをそのまま使うことにします。
- /etc/passwd を作る。
setup-2.29(?) あたりから、/etc/passwdと/etc/groupを自動的に作ってくれる
ようになりました。ただ/etc/group はおかしい気がします、ので、/etc/group は
自分で作ってあげる必要があるかもしれません。あと、困ったことに既存の
/etc/passwd ファイルを書き換えてしまうようなので、必要なら事前に
バックアップをとるのがよいでしょう。
Cygwin-1.1.5 では Windows95/98/Me(以下、Win9x)でも
mkpasswd コマンドでパスワードファイルの雛型を作ることが
できるようになりました。Win9xの場合はこんな感じになります。
$ mkpasswd > /etc/passwd
$ cat /etc/passwd
docile::500:544:/home/docile:/bin/sh
パスワードフィールドが空っぽですが、これは crypt コマンドを使って得られた
文字列をコピー&ペーストしてやってください。
$ crypt cygwin
eP2PAiXu1dusU
この例では、"cygwin" をパスワードとする場合の暗号化文字列を取得しています。
なお、パスワード文字(上の例なら "cygwin")が同じでも crypt コマンドを
実行するたびに異なる結果が得られますが、問題ありません。
WindowsNT/2000 の場合は、mkpasswd コマンドで/etc/passwd を作ってあげれば
よいはずです(未確認)。NT/2000 の場合は、Windows に設定したパスワードが
認証に使われます。
- /etc/group を作る。
Win9x の場合、
$ mkgroup > /etc/group
$ cat /etc/group
unknown::544:
mkgroup コマンドを実行してその結果を /etc/group に記録します。Windows9x の
場合はこの例のようになります。WindowsNT/2000の場合は設定されているグループが
記録されます(未確認)。
- inetd.conf などを用意する。
/usr/bin/iu-config を実行すると、以下のファイルが作成されます。
- /etc/ftpusers
- /etc/ftpwelcome
- /etc/inetd.conf
- /etc/motd
- /etc/shells
今は問題ないようですが、以前はこの iu-config スクリプトでエラーが発生して
正しくファイルが作成できなかったので修正する必要がありました。
222行目あたりの、
# The external services are typically called via `tcpd' for
ここの "`" の解釈がおかしかったようで、これを "\`" に変えると
うまくいきました。
- /usr/sbin/inetd.exe を起動します。
Win9x/Me ではコマンドプロンプトから起動します。この場合、
inetd.exe を kill しないとそのウインドウは閉じないので
注意してください。なお、このこと(起動させたままのアプリケーション
があると DOS ウインドウが閉じない)は inetd.exe に限りません。もしなにか
実行させたままシェルから exit してしまった場合は、新たに Cygwin の
ウインドウを開いて、そのウインドウから kill してやってください。
WinNT/2k の場合は2通りの方法があります。
- 特殊な権限をもつユーザを用意し、そのユーザで起動する
- サービスとして登録し、起動する。
前者の方法の場合は以下の3つの権限
- オペレーティングシステムの一部として機能
- クオータの増加
- プロセスレベルトークンの置き換え
を追加すればいいのですが、Win2k の場合どうすればよいのかよくわからない (--;
のでここでは書きません。WinNT の場合はユーザマネージャを使用すれば可能です。
後者の方法(サービスとして起動)する場合、Cygwin のコマンドプロンプトで
"/usr/sbin/inetd --install-as-service" とたたけば「自動的に起動する
サービス」として "CYGWIN inetd" という名前で登録されます。削除する場合は
(おそらく、サービスを停止させてから)
"/usr/sbin/inetd --remove-as-service" とたたきます。
(セキュリティ上不安があるので)必要なときだけ起動させたい場合は
管理ツールの「サービス」で手動起動に設定します。次に、コントロールパネルの
「システム」を開いて「詳細」タブをクリック、「環境変数」ボタンを押します。
「システム環境変数」に(好みで)以下の環境変数を設定します。
- CYGWIN=binmode ntsec tty
- PATH の末尾に Cygwin の bin インストール先フォルダを追加する。たとえば
"C:\cygwin" にインストールしたなら "C:\cygwin\bin" を PATH に追加する。
環境変数を設定したら、システムを再起動します。再起動できたら、
管理ツールの「サービス」を開いて、inetd が起動しているかどうか(手動起動の
場合は、起動できること)を確認します。エラーなどで正しく起動できずに
終了したりするようなら、「イベントビューア」を開いて状況を確かめます。
docile-AtMark-docile.org