レジストリ蛾ぶっ壊れて再インストールが必要になったのでWindowsをクリーンインストール後に入れた開発ツールなどを忘備録として。あと軽く各ツールについて解説。
環境
- Windows 10 Pro
- バージョン 1607
- build 14393.51
Tools
Development
Babun
zshとかohmyzshとかgitなどのモダンっぽいツールをまるっと入れたのをパッケージングしたcygwin環境。
モダンらしくパッケージマネージャを備えているので必要に応じて追加でツールをインストール出来る。
pact find unzip
pact install unzip
Docker-Toolbox
docker
, docker-compose
, docker-machine
, VirtualBox, Git for Windowsやらをまとめてインストール出来る。
Docker for Windowsが最近GAになったもののマウント周りで微妙にバグを抱えていたり挙動が怪しかったのでまだDocker-Toolboxを使っている。(Hyper-VとVT-Xが排他的なので同時に使えないのが辛い)
アプリ開発においてはDockerさえホストOSに入っていれば最近はMacもWindowsもほぼ差異はなくなってきた感じはする。
例えばささっとnpm install
したいってなったらnode.jsをホストOSにインストールしなくても
docker run -v $(pwd):/code -w /code node npm install
でホストOSの環境を汚さずにnpmコマンドを実行出来る。
いい時代になった。
babun上からも利用出来る。
$ docker-machine create -d virtualbox default
$ docker-machine env >> ~/.zshrc
$ source ~/.zshrc
$ docker ps
※babun上から利用する場合はtty周りにバグがあるので別途babun-dockerのインストールが必要。
$ curl -s https://raw.githubusercontent.com/tiangolo/babun-docker/master/setup.sh | source /dev/stdin
$ babun-docker-update
Bash on Windows (Windows Subsystem for Linux)
WindowsにSubsystemとしてそのままLinuxが入っているのでLinuxにインストールが可能なものなら大体何でも入る。
逆にいえばWindows用バイナリはWSL(Windows Subsystem for Linux)上からは間接的にしか使えないので、既存のソフトウェア資産との使い分けが必要。
Babunはcygwin特有のforkの遅さでもっさり感はあるものの基本的にWindowsカーネル上で動作しているので.exe
も実行出来るが、WSL上ではLinux用バイナリしか使えないのでWSLを使う場合はLinuxで開発するぞいという鋼の意志が必要。
ただxilun/cbwinでWSL上からwcmd
でWindowsバイナリを間接的に叩く事もできる。
➜ wcmd dir
Volume in drive C has no label.
Volume Serial Number is 44BC-2877
Directory of c:\Program Files\Cmder
2016/08/10 13:29 <DIR> .
2016/08/10 13:29 <DIR> ..
2016/07/14 16:22 <DIR> bin
2016/07/14 16:22 53,439 CHANGELOG.md
2016/07/14 16:22 129,536 Cmder.exe
2016/08/10 13:30 <DIR> config
2016/07/14 16:22 1,784 CONTRIBUTING.md
2016/07/14 16:22 <DIR> icons
2016/07/14 16:22 10,035 README.md
2016/07/14 16:22 <DIR> vendor
2016/07/14 16:22 0 Version v1.3.0
5 File(s) 194,794 bytes
6 Dir(s) 180,430,159,872 bytes free
Docker対応について
WSL上にLinux用のdockerバイナリをインストールしてDocker ToolboxやDocker for WindowsのDocker daemonを叩くことも出来るが、自分の環境では以下のようなdocker-compose.yml
定義でファイル単位でマウントをしようとしたらoci runtime error
, not a directory
エラーなどが出て一部コンテナの作成に失敗することがあった。
docker-compose.yml
volumes:
- "./nginx.conf:/etc/nginx/nginx.conf"
Docker Toolbox付属のdockerバイナリではこの問題は起こらなかったのでWorkaroundとしてcbwinで以下のようにWindows側にインストールしたdockerバイナリをwcmd
経由で叩いたところ問題なくマウント出来た。
wcmd --env DOCKER_HOST=tcp://192.168.99.101:2376 DOCKER_CERT_PATH="C:\Users\shufo\.docker\machine\machines\default" DOCKER_TLS_VERIFY=1 DOCKER_MACHINE_NAME=default docker ps
ここまでしてWindows資産を使いたいかは別としてどうしてもWindowsバイナリを使いたいときのWorkaroundにはなりそう。
Cmder
タブなどが使えるコンソールエミュレータ。
コマンドプロンプトからもbashを立ち上げられるが、こちらの方がコピー&ペーストなどやりやすい。WSLでbashを使いたい場合はCmder経由で起動する。
Redis Desktop Manager
RedisのGUIクライアント。
Redisデータを階層的に可視化出来る。(data:1
のようなキーをset
するとネストされて表示される)
HeidiSQL
MySQLのGUIクライアント。
Hosts File Manager
GUIでhostsファイルの編集が出来る。
Atom
定番だけど最近ElixirをいじっているのでAtomに乗り換えた。
そこそこElixir向けプラグインが揃っている。
Utilities
Wox
個人的にはこれがないと困るツールの一つ。
MacでいうところのAlfred風のランチャー。
Everythingをバックグラウンドサービスとして使い全ドライブのインデックスからファイルを高速に検索が出来る。
AutoHotKey
キーマッピングの変更やキーの組み合わせでキーイベントなどを発生させたり出来る。
以前書いた
Windowsで英字配列のApple Wireless KeyboardをMac風キーバインドにする
でApple Wireless Keyboard(US)のキーのマッピングを変えたりIME切り替えon/offをCommandキーで出来るようにしたのもこれで行っている。
Clibor
クリップボード履歴をインクリメンタル検索出来る。
Alfred Powerpackのクリップボード機能だけ切り出したような感じ。
Screenpresso
スクリーンショット撮影ツール。
Packages
Chocolatey
Windowsでのパッケージ管理ツール。
コマンドプロンプトやPowershellで
choco install python
と叩けばパッケージを入れられる。利用可能なパッケージ一覧はこちら。
インストールしたソフトはChocolatey管理下になるのでパッケージのデフォルトのインストールディレクトリから外れることや、Chocolateyリポジトリによってはソフトの最新版がインストールされないこともあるので注意。