Cygwin on Windows7で"快適な"CassandraとかHadoopとかの開発環境【書きかけ】
MinGW on Windows7(x64)でCassandraやらHadoopやらの調査・アプリ開発をしていたのだが、あまりに不便、というか無理なのでCygwinに移行することにした。素直にCentOSの仮想マシン構築しろって話もあるんだけど、EclipseやらWebブラウザやらExcelやら立ち上げてると、すぐにメモリ4GBぐらい食いつぶすので。。。
インストール概要
とりあえず最小限しか入れないように。必要になった時点で足す感じで。
インストールしたパッケージのリスト
基本デフォルトで。以下は自分で選択したパッケージ。依存性の解決は全てインストーラ任せで。
Vimのインストール
2010/04/14追記:結局、この手順だとVimがCP932になっちゃうので、Cygwin Vim使わないとダメかも。
ダウンロード→パス設定
Vim UTF-8 日本語版 - fudistのWindows用Vimをダウンロードしてきて、適当な場所に展開する。展開したら、Cygwinから使いやすくするようにパスを通しておく。
ちなみにうちでは以下のようにして、C:/cygwin/bin/にvim.exeのシンボリックリンクを作っている(管理者権限が必要)。まぁ、別にパスを通さなくても、.bashrcを編集してaliasでもいいと思う。
mklink c:\cygwin\bin\vim.exe "c:\Program Files (x86)\vim\vim.exe"
ちなみにWindows版のVimはKaoriYaさんのが有名だけど、UTF-8で使おうとすると設定が面倒なので、ここで紹介したVimを使用するのが無難。
クリップボード共有(gvimでWindowsのクリップボードを使う - へたれプログラマな日々より)
デフォルト設定では、VimとWindowsのクリップボードが連動していないので、vimrcに以下を追加。
set clipboard=unnamed
Cygwin初期設定
VimがインストールできたのでUTF-8で動かすようにCygwinの設定ファイルを弄る。
bash( cygwinのgitで日本語を文字化けさせない - もうカツ丼でいいよなより)
.bashrcに以下を追加。
export LANG=ja_JP.UTF-8 export PAGER='lv -Ou8' alias ls='ls -F --color=auto --show-control-chars ' alias lv='lv -Ou8 ' alias less='lv -Ou8 '
zsh
zsh初回起動時、以下のようなメッセージが表示されるので、「0」を押して.zshrcファイルを生成する。
zsh-newuser-install:929: command not found: clear This is the Z Shell configuration function for new users, zsh-newuser-install. You are seeing this message because you have no zsh startup files (the files .zshenv, .zprofile, .zshrc, .zlogin in the directory ~). This function can help you with a few settings that should make your use of the shell easier. You can: (q) Quit and do nothing. The function will be run again next time. (0) Exit, creating the file ~/.zshrc containing just a comment. That will prevent this function being run again. (1) Continue to the main menu. --- Type one of the keys in parentheses ---
なんかエラーが表示されてzshが起動しない場合、Cygwin関係のプロセスを全部killして、コマンドプロンプトで以下を実行する。(Cygwinで "unable to remap *.dll" が出るときは rebaseall らしい - XXXannexより)
rebaseallしてもzshが起動しないことがあるんだけど、その場合、rebaseall自体が失敗してる可能性がある。うちではインストールしたCygwinのパッケージが壊れていたようで、reinstallしてみたらrebaseallできるようになった。
cd c:\cygwin\bin ash rebaseall -v
.zshrcに最低限の設定を追加。詳細な設定は漢のzsh | コラム | エンタープライズ | マイナビニュースを参考にすると良い。
export LANG=ja_JP.UTF-8 export PAGER='lv -Ou8' alias ls='ls --color=auto --show-control-chars ' alias lv='lv -Ou8 ' alias less='lv -Ou8 ' alias vi='vim' PROMPT="%m:%n%% " RPROMPT="[%~]" SPROMPT="correct: %R -> %r ? "
Cygwin起動時のshellをbashからzshに変更する。C:\cygwin\cygwin.batを以下のように変更。(Windows7にもzsh環境を - kamuycikap - SentenceDataBaseより)
@echo off C: chdir C:\cygwin\bin zsh --login -i
ちなみに「set CYGWIN=tty」付けたらVimがちゃんと起動しなくなってしまったので、つけちゃダメぽい。
CygwinからJava(JDK)を使う
基本的にはWindows版Java(JDK)をそのまま使うのだが、CygwinとWindowsのパス解決の違いがあるので、Linux/Mac用のJavaアプリ起動スクリプトはまず動作しない。スクリプト中のパス指定を全てcygpathを使ったものに書き換えてもいいのだが、めんどくさいので素直にCygwinでJavaを快適に使うのjava_wrapperを使うと楽ができるので、ここではjava_wrapperのセットアップ方法を紹介する。
以下のようにJDKがセットアップされていることが前提条件となる。
- Windows用のJDKをインストール済み
- 環境変数にJAVA_HOMEを設定済み
java_wrapperをダウンロードして、/usr/local/bin/java_wrapperへコピーし、実行可能に(chmod +x)する。ただし環境によってjava_wrapperが動作しないことがある*1ので、java_wrapperをテキストエディタで開き、最終行を以下のように修正する。($PROGRAMを""で囲む)
exec "$PROGRAM" $ARGS
スクリプトを修正したら以下のコマンドを実行する。ただし、この方法だと普段使わないappletviewer.exeやHtmlConverter.exeあたりのシンボリックリンクも生成されるので、好みで消したりするとよい。
cd /usr/local/bin ./java_wrapper createsymlinks
これで設定完了。javaやjavacなどのコマンドを実行できるか確認する。
Hadoopを擬似分散モード(シングルノード)動かす
別エントリで書いた。そのうちマージしたい。
Windows 7 + CygwinでHadoop(擬似分散モード)を動かす - DenkiYagi
おまけ:ckwからCygwinを使う
ckw 0.8.10 改造版を更に改造した(修正しただけ)からVista対応版のckwをダウンロードしてきて、適当なところにインストール。ckw.cfgのCkw*execを以下のように修正。
Ckw*exec: C:\cygwin\Cygwin.bat
なお、ckwさんはウィンドウの×ボタンで閉じちゃうと、Cygwinのプロセスが生き残っちゃうので注意。