リンク集
Bash (MSYS2)
GCC (pacman(MSYS2/MinGW-w64))
Git (Git for Windows)
CMake (本家)
Make (pacman)
Python (Miniconda)
Node.js (本家)
Ruby (RubyInstaller for Windows)
Perl (Strawberry Perl for Windows)
各種コマンド (pacman)
2018/09/29 Makeについて追記
2018/12/26 chcp.comについて追記
2019/01/12 GCCのオススメを変更、pacmanについての補足の記述を変更
2020/04/03 各種コマンドのオススメを変更
背景
上記リンクを選択した背景です。
誤っている点などあればご指摘ください。
Bash (Git for Windows vs MSYS2)
MSYS2ではpacmanというパッケージ管理ツールが使えます。Git for WindowsにもBash環境もついてくるのですが、pacmanの利点の差でMSYS2を選びました。1
GCC (Cygwin vs MinGW vs MinGW-w64)
CygwinはUNIX環境を再現することに注力しているため、Linuxと同じシステムコールが使えるなど、有利な面もあります。しかしその分、Cygwin上で作ったプログラムはcygwin1.dllに依存してしまいます。今回それはなるべく避けたかったためCygwinは除外しました。
MinGW(Minimalist GNU for Windows)はGNUツールチェーンのWindows移植版で、MinGW-w64はさらにその64bit向けフォーク版です。64bit向けがあるならそちらを使いたい、ということでMinGW-w64を選びました。
MinGW-w64 (本家 vs TDM vs MSYS2)
本家のMinGW-w64は32bitコンパイルができないのでTDMのものを使うことにしました。
TDM は更新が止まっています。
本家 はオンラインインストーラーがありますが、私の環境では使えませんでした。
MSYS2 のMinGW-w64をpacmanで入手することにしました。ライブラリもpacmanで取得できて便利そうです。
$ pacman -S mingw-w64-x86_64-gcc
Git (msys vs Git for Windows)
pacmanでmsysのGitも入手できます。しかしGit for Windowsにはhtmlのヘルプが付いてきました。これが読みやすかったので、シェル環境はMSYS2ですが、GitはGit for Windowsのものを使うことにしました。
CMake (msys vs 本家)
pacmanでmsysのCMakeも入手できます。しかし本家のWindows向けCMakeではジェネレータにVisualStudioを選択できます。これは明確な利点ですので、本家版を使うことにしました。
※ 基本的に「本家で配布されている」またはそれに準じる「Windows版の定番」が存在するのであれば、pacmanで入手するよりも良い選択だと思います。
Make (msys vs GnuWin32)
GnuWin32のmakeはバージョン3.8、pacmanで入手したmsysのmake(msysインストールときに配置されるもの)はバージョン4.1。
GoogleTestをコンパイルしようとした際、GnuWin32のものではエラーしました。
Python (本家 vs Miniconda)
本家でもWindows版が用意されているのですが、pipで取得したパッケージを使おうとした際に使えない場合が結構ありました。Minicondaではpipとは別にcondaというパッケージ管理ツールが付属し、(提供されていれば)Windows用のバイナリが取得できます。OpenCV3も自分でビルドすることなく使用できたため、Minicondaを使うことにしました。
chcp.com 65001 vs chcp.com 932
chcp.com 932 # -> Shift-JIS出力を期待するようになる
chcp.com 65001 # -> UTF8出力を期待するようになる
使いたいツールによるため、どちらがオススメとは言えません。
例を挙げておきます。
コマンド | 932 | 65001 |
---|---|---|
cmd /? |
日本語 | 英語 |
atom -h |
文字化け | 日本語 |
各種コマンド(pacman vs GnuWin32)
GnuWin32でも入手できますが、pacman管理に統一した方がわかりやすくなりそうです。
参考
MSYS2で快適なターミナル生活 - Qiita
Windowsで使えるターミナルとシェルのまとめ - Qiita
やっぱり私がUbuntuになってしまった理由 (Windows 10 Anniversary Update) - Qiita
Windows で快適なシェル生活を送りたい - Qiita
-
例えばexpectというコマンドは、非CygwinのWindows版はMSYS2のpacmanで入手するしかなさそうです。 ↩