#方針:
cygwinの利用は最小限に
cygwinについて、よくわかっていないので、無理はしない。
例えば、node環境をcygwin側で構築するのは明らかに茨の道なのでパス。
とりあえず、cygwin使うことでzshとansibleが"普通に"動くというところで満足しておく。
nodeやjavaの環境はwindowsのものを使う。
- "普通に"動かすためには、いくつか工夫が必要。
- 付記:ansible 動かすためのpython環境は、cygwin側にある。
追記:Cygwin別パッケージBabunを導入して"普通に"動くようになった。以後、[Babunを使う方法]を推奨したい。
##cygwin 1.7系を使用し、なるべくmacやlinuxと親しい環境を構築。
以前、こちらで構築した"Ansible on cygwin with zsh"を活用し、必要な設定を追加していく。すなわち、サーバ環境はansibleで管理する方針。
まずは、cygwinのバージョン確認。
CYGWIN_NT-10.0-WOW DESKTOP-NIBB0OO 1.7.35(0.287/5/3) 2015-03-04 12:07 i686 Cygwin
1.7系は、ちょっと頑張れば十分に使えるものと期待し作業に着手。このあたりを参考させてもらい作業をすすめる。
##(背景) windows環境を過度に信用せず、dropbox上で作業
cygwinにはいろいろ地雷が埋まっているっぽいが、windowsだって相当なもの。
ただし、nodeやjavaのバージョンその他の事情によって、
windows側ではトラブルった場合、windowsユーザーを作り直すという手がある。
環境でとらぶったらwindowsユーザー毎作りなおすつもりで、環境設定その他一式をdropboxに置いておく。
##ansibleでのサーバ環境構築の試行錯誤過程もdropboxで管理
依存関係が少ないansibleは、クライアント側をきちんと管理しておけば、ひとまず、安心のはず(今後、検証)。
Cygwinを適切に起動させる*(全画面でzsh、ちゃんとhistoryも効いて・・)*
まずは、cygwin-ansible.batのインストール先(例、C:\cygwin)を確認し、cygwin-ansible.batで、cygwin環境に入る。
zshの設定
"apt-cyg install zsh"した直後のスタート地点は以下。
zsh 5.0.8 (i686-pc-cygwin)
適宜、 再入門などを参考させていただき修正していく。
oh-my-zshのインストール
Via oh-my-cygwin:
wget --no-check-certificate https://raw.github.com/haithembelhaj/oh-my-cygwin/master/oh-my-cygwin.sh -O - | sh
ターミナルエミュレータminttyのディフォルトのシェルをzshに
ansible-cygwinの場合、chshコマンドがなく、起動時に/etc/passwdを使っていない。
Cygwinインストールフォルダのbatファイル(例、C:\cygwin\cygwin-ansible.bat)における
ターミナルエミュレータminttyの起動方法をbashをzshに変更することで対処する。
@echo off
%~d0
set PATH=%SystemRoot%\system32
set cygdrive=%~d0
set cygdir=%~dp0
cd %~dp0\bin
set MAKE_MODE=unix
set CYGWIN=noacl nontsec nosmbntsec
set SHELL=/bin/bash
bash.exe -c "/usr/bin/mintty - &"
exit
変更後は、以下のとおり(--window maxで、起動時に全画面表示)。
@echo off
%~d0
set PATH=%SystemRoot%\system32
set cygdrive=%~d0
set cygdir=%~dp0
cd %~dp0\bin
set MAKE_MODE=unix
set CYGWIN=noacl nontsec nosmbntsec
set SHELL=/bin/zsh
zsh.exe -c "/usr/bin/mintty --window max - &"
exit
[付記] telnet経由で使うとき等は、 以下のようにして、/etc/passwdを作成・変更する。
mkpasswd > /etc/passwd
nano /etc/passwd
汎用的な確認方法echo $0で、既存のシェルを確認。
echo $0
-zsh
historyを有効にする。
最近まで、cygwin上のzshはhistoryが使えないというありえない状態だったが、最近パッチがリリースされたため、
.zshrcに以下を追記することで、ヒストリーが有効になる。
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
ターミナルminttyをかっこ良くする
疲れてきたので、こちらに従い、速攻で、かっこ良くUTF-8日本語環境とさせていただく。
touch .minttyrcし、以下に設定
BoldAsFont=no
Transparency=high
Font=Inconsolata
FontIsBold=no
FontHeight=10
CursorColour=255,0,0
CursorType=block
Locale=ja_JP
Charset=UTF-8
BackspaceSendsBS=yes
RightClickAction=paste
ClicksTargetApp=no
CursorBlinks=yes
FontSmoothing=default
CopyOnSelect=yes
- Transparency=grassの方がかっこよかった
再起動すると、フォントがちょっとかっこよくなり利便性も向上^^
#今後の方針
クライアント側はJSで、サーバー側はJVM言語でいくので、以下の環境を整備し、cygwin上で普通に作業できるようにしていく。
- node周り (VisualStudioとも親和的に)
- java周り (IntelliJと親和的に)
rubyが必要になった時は、まずはcygwinで入れることになると思う。