Windows 10 に Cygwin(64bit 版)をインストールする方法をまとめてみます。2016年 7月現在の最新版 2.5.2 をインストールします。
目次
前提
以下の前提です。
- Windows 10 64bit に Cygwin 64bit 版をインストール
- Windows の ACL については気にしない
- Cygwin のルートディレクトリは D:\
- ユーザーのホームディレクトリは D:\home\username
- パッケージ保存ディレクトリは D:\packages\cygwin
ダウンロードとインストール
まずは下記リンク先からインストーラーをダウンロードします。
Cygwin This is the home of the Cygwin project
64bit 版をインストールするので setup-x86_64.exe をダウンロードして D:\packages\cygwin に保存します。
インストーラーを起動します。【次へ(N)】をクリックします。
ダウンロード元を指定します。【Install from Internet】で問題ないのでこのまま【次へ(N)】をクリックします。
インストールディレクトリを聞かれますので【D:\】を指定して【次へ(N)】をクリックします。
ドライブのルートに入れるのはおすすめしないよ、とか言われますが無視して【はい(Y)】をクリックします。
パッケージを保存するディレクトリを聞かれます。そのまま【次へ(N)】をクリックします。
パッケージをダウンロードする際の接続方法を聞かれます。そのまま【次へ(N)】をクリックします。
パッケージ情報のダウンロードが始まります。そのまましばし待ちます。
パッケージの選択画面が表示されます。とりあえず追加パッケージ等は指定せず、そのまま【次へ(N)】をクリックします。
パッケージのダウンロードとインストールが始まります。通信回線や PC の速度によりますが、結構時間が掛かります。そのままぼーっと待ちます。
インストールが完了しました。そのまま【完了】をクリックします。
デスクトップとスタートメニューに Cygwin 起動用のアイコンが追加されます。
ターミナル mintty の設定
Cygwin 起動用アイコンをダブルクリックすると、標準のターミナルソフト mintty で起動します。
※この時点で環境変数 HOME は /home/username となっています。
好みに合わせて色などを設定します。僕の場合は /home/username/.minttyrc を以下の内容で作成しました。
BoldAsFont=no ForegroundColour=64,0,0 BackgroundColour=255,255,255 Font=MeiryoKe_Console FontHeight=11 CursorType=block CursorColour=64,0,0 Locale=C Charset=UTF-8 Scrollbar=none Transparency=off OpaqueWhenFocused=no
フォントは MeiryoKe_Console を指定しています。
シンプル好きなので .bashrc や .bash_profile も適当に書いてプロンプトもシンプルに。最終的には以下のような感じ。
起動時のウィンドウ位置やサイズを固定したいので、起動用のショートカットに以下を指定。
D:\bin\mintty.exe --position=894,33 --size=83,44 -i /Cygwin-Terminal.ico -
追加パッケージのインストール
ssh などを使いたいので、setup-x86_64.exe を再度起動して、パッケージの選択画面で必要なパッケージを検索 → チェックを入れて【次へ(N)】をクリック、で追加インストールします。
例として ssh を使うために OpenSSH をインストールする場合は以下のような感じ。
パッケージによっては依存パッケージをいっしょにインストールする必要があります。勝手に選択してくれるので特に何も考えずに【次へ(N)】をクリックでOK。
必要なパッケージは都度追加すればOK。
個人的にいつも入れるのは openssh, imagemagick, php, php-mbstring, ruby, perl, patch, unzip, make, gcc, gcc-g++ …とかとか。
パッケージ管理は、上記のように setup-x86_64.exe を起動して GUI で操作するよりも apt-cyg をインストールしてごにょごにょすると快適。
Windows 環境変数の設定
Cygwin をインストールした時点で、Cygwin 環境内では HOME=/home/username になっています。
が、Windows 側から設定しておいたほうが Cygwin 以外のツール(Emacs とか)との連携を考えた場合になにかと都合が良い。ということで以下を Windows のシステム環境変数に設定しておきます。
CYGIN=codepage:utf8
HOME=D:\home\username
TMP=D:\tmp
LANG=en_US.UTF-8
LC_CTYPE=ja_JP.UTF-8
LANG を有効にするために mintty のオプション設定画面から locale および Character set ともに空欄(Default)にします。
Windows コマンド用のラッパーを作成
Cygwin の mintty は UTF-8 表示ですが、Windows のコマンド群の出力は Shift JIS です。よく使うコマンドについては出力文字コードを変換するラッパーを作成します(要・Ruby)。「Windows のコマンド群なんて使わん!」という場合はこの手順は不要です。
/usr/local/bin/ に以下の内容で ping というファイル名でテキストファイルを作成します。
#!/usr/bin/env ruby KCODE='u' require "kconv" cmd = File.basename(__FILE__) +".exe " + $*.join(' ') IO.foreach("| #{cmd} 2>&1 "){|line|puts line.kconv(Kconv::UTF8,Kconv::SJIS)}
作成したテキストファイルに実行パーミッションを与えて動作テストして、正常であれば必要なコマンド名(例: ipconfig)のシンボリックリンクを作成します。
僕の場合は ipconfig, ping, nslookup を作成して利用しています。traceroute は Windows のコマンド名が tracert と違うので別に上記のようなテキストファイルを作成しています。
下記リンク先で詳細に説明されています。
参考 Cygwin(msys)のUTF-8環境便利にするコマンドラッパー – それマグで!
とりあえずはこんな感じ。