# Cygwin接続

ローカルの Cygwin 環境に Tera Term から接続できます。
Cygwin は、Windows 上で Linux のような環境を提供するソフトウェアです。
Cygwin は、オープンソースソフトウェアです。

※注意：Cygwin 1.5.x は Windows 7 をサポートしていないようです。Windows 7 以降では Cygwin 1.7.x を利用してください。

## Cygterm+

Tera Term は Cygwin に接続するために、内部で Cygterm+ を利用しています。
Fileメニューから「Cygwin connection」を選択する、もしくは Alt+G を押下すると、Cygwin へ接続します。

### 設定の保存

cygterm.exe から起動された状態で設定保存 [Setup] [Save setup] を行わないよう注意してください。TCP/IP設定の Telnetポート番号が 23 以外で保存され、通常の Telnet目的の実行時に接続できず、慌てることになってしまいます。
TCP/IP Port# に 23 を指定して設定保存し直せば元に戻ります。

### Cygwin の探し方

Cygterm+ を起動するには Cygwin のインストールパスを見つける必要があります。Tera Term と cyglaunch は次の順序で Cygwin のインストールパスを探します。

1. TERATERM.INI
   1. teraterm.exe が読み込んでいる TERATERM.INI、あるいは cyglaunch.exe のフォルダにある TERATERM.INI の CygwinDirectory エントリを読む
   2. CygwinDirectory の下に bin\cygwin1.dll があるか調べる
   3. bin\cygwin1.dll があれば PATH 環境変数にパスを追加する
   4. cygterm.exe を起動する
2. PATH 環境変数
   1. PATH 環境変数が通っているフォルダに bin\cygwin1.dll があるか調べる
   2. cygterm.exe を起動する
3. ドライブルート総当たり
   1. C から Z まで、ドライブルート直下の cygwin あるいは cygwin64 フォルダに bin\cygwin1.dll があるか調べる
   2. bin\cygwin1.dll があれば PATH 環境変数にパスを追加する
   3. cygterm.exe を起動する

1. の「TERATERM.INI の CygwinDirectory」の設定は、インストール時には空文字列になっているので無視されます。自動検索がうまくいかない場合は手動で Cygwin のインストールパスを設定してください。
フォーマットは「ドライブ名：￥ディレクトリ」です。

    ----------------------------
    ; Cygwin install path
    CygwinDirectory = c:\cygwin
    ; 64bit Cygwin
    ; CygwinDirectory=c:\cygwin64
    ----------------------------

### 64bit Cygwin

64bit Cygwin に接続するには 64 bit Cygwin環境 でビルドされた cygterm+ プログラムが必要です。通常はTera Termのインストーラが、インストールされているCygwinのバージョンを判定して適切な実行ファイルをコピーします。
インストーラの判定が正しく動作していない場合は、手動で cygterm+-x86_64 フォルダ内の実行ファイルを Tera Term のインストールフォルダに上書きするか、自分でCygterm+をビルドし直してください。

### Cygterm+をビルドする

Tera Term に同梱されている実行ファイルに問題があってうまく起動しない場合は、Cygterm+ をビルドし直してください。
最新のソースコードは cygterm+.tar.gz として同梱されています。

ビルドに必要なパッケージ
32bit Cygwin | 64bit Cygwin
--- | ---
Devel/gcc-g++ Devel/make Devel/mingw-gcc-core | Devel/gcc-g++ Devel/make Devel/mingw64-x86_64-gcc-core

## Cygterm Here

インストーラで選択すると、フォルダの右クリックや開いているフォルダに Cygterm Here というコンテキストメニューが追加されます。選択されているフォルダで Cygwin 接続を開くことができます。

一般的な環境で動作するようにパラメータを設定していますが、csh/tcsh では CHERE_INVOKING をチェックしないことがあります。必要であれば /etc/csh.login を修正するか Cygterm Here のレジストリ設定を下記のように変更してください。

    "C:\Program Files\teraterm\cyglaunch.exe" -nocd -v CHERE_INVOKING=y -d "\"%L\""
    ↓
    "C:\Program Files\teraterm\cyglaunch.exe" -nocd -nols -d "\"%L\""