Cygwin FAQ 日本版

Spec

Cygwin-1.3.5 対応です。たぶん。それ以外のバージョンでは異なる場合が あります。あと、間違いがあれば教えて下さい。

前説

各地の掲示版(某2ch.net とか)などを見ているといくつか FAQ 化した質問が 見受けられるので作ってみました。
なお、本家 FAQ の日本語訳ではありません。 あくまで日本版 FAQ です。本家 FAQ およびその日本語訳は以下の URL から 参照できます。

凡例?

本編

まだあまり中身がありません。みためも整っていません。未検証の部分もあります。
bash のプロンプトから日本語が入力できません。
ホームディレクトリ上のファイル .inputrc に以下の設定を記述してください。

set input-meta on
set output-meta on
set convert-meta off
これで日本語を受け付けるようになりますが、Win9x の DOS 窓(Cygwin Bash prompt) では入力することは出来ません。また、日本語1文字は英数2文字分として扱われるので 注意してください。例えば「あ」一文字を消すにはバックスペースを2回たたきます。
なお、日本語対応版の bash で日本語を入力するときはさらに

set kanji-code sjis
これも記述します(シフト JIS を使用する場合)。

Win9x 上で Cygwin を起動してみました。日本語が入力できません。 .inputrc の設定はすませています。
Win9x の MS-DOS プロンプトあるいはWin9x 上で Cygwin のアイコンから起動する Cygwin Bash Prompt の場合、日本語は入力できません。rxvt を 試してみて下さい。
もっとも、Cygwin を利用するのなら Win9x を使うのは止めるべきかもしれません。

ls コマンドで出力される日本語のファイル名が "?????" になってしまいます。
"--show-control-char" オプションが必要です。

 ls --show-control-char
と入力してみてください。多くの人はそうだと思いますが、 いちいち入力するのが面倒であれば、これを ls のエイリアスとして ~/.bashrc などに記述してしまえばよいでしょう。

僕の使いたいアプリケーションは Cygwin で動きますか?
google などの検索エンジンで探してみましょう。もしかすると、誰かがパッチを 作っているかも知れません。何も見つからない場合は、 のいずれかであると思われます。諦めるのもひとつの手ですが、自分で努力して 動かしてみるとよいでしょう。もし動いたら、後進の人々のために report を 残してあげてください。

僕の使いたいアプリケーションについてなにも情報がありませんでしたが、 Cygwin 上で動作させることに成功しました。とくに問題もないようです。
この場合、あなたが何らかの情報を提供すると他の誰かが喜ぶことでしょう。 また、それを見た誰かがもっとよいやりかたを教えてくれるかもしれません。

CYGWIN 環境変数には何を設定すればいいですか?
なにも設定しなくてもいいです。設定したいなら好みで、ということになると 思いますが「ntea」だけは設定しないほうが無難です。 FAT ファイルシステムのディスクを利用したときに悲しいことが起きます。
私は

set CYGWIN="title ntsec binmode"
を cygwin.bat に書いています。 ちなみに、このうち "title" 以外は Cygwin 自身のデフォルト設定 (== CYGWIN 環境変数未設定の時の状態)と同じですので、実際のところ 設定する意味がほとんどありません :)

set CYGWIN=tty
を cygwin.bat に書いています。
ntsec は WinNT 系で NTFS ファイルシステムを 利用している場合のみ有効です。Win9x 系でどうなるのかはわかりません (無視される?)。なお、ntsec を使わないように明示するときは nontsec と します。

bash プロンプトから CYGWIN 環境変数を設定しても変化がありません。
それは間違ったやり方です。autoexec.bat(WinNT 系なら システムコントロールパネル)や cygwin.bat で指定して起動し直してください。

inetd を利用したいのですが、どうしたらいいですか。

Windows2000 では、 サービスとして起動してやる必要があります。

  1. mkpasswd で /etc/passwd を生成します。(ファイルがない場合)
  2. mkgroup で /etc/group を生成します。(ファイルがない場合)
  3. /usr/bin/iu-config を実行します。
  4. /usr/sbin/inetd --install-as-service を実行します。ちなみに サービスから削除する場合は "--remove-as-service" オプションです。
  5. システムの環境変数 PATH の末尾に、Cygwin の bin フォルダへのパスを 追加します。 インストーラ (setup.exe) のデフォルト設定のまま進めたならたぶん "C:\Cygwin\bin"。CYGWIN 環境変数は "tty" をセットしておくほかは 好みで("tty" は必要か?)。
  6. Windows を再起動します。
  7. 管理ツールの「サービス」で、Cygwin inetd サービスを開始します。 自動起動にしてある場合は不要です。サービスの起動に失敗する場合は イベントビューアを見てみると手がかりがつかめることがあります。
参考:
インストールメモ

Windows9x 系ではたぶん以下のような注意が必要です(試していません)。

Win9xにしろ NT 系にしろ、不用意に動かしっぱなしにして(そして crack されたりして)自分や他人に被害を与えることのないようにご注意下さい。

募集中

追加する中身(質問箱ではないので、質問は不要です。質問とその回答をセットで ください。)