MSYS2
MSYS2 は,最新の Cygwin と MinGW-w64 をもとにした UNIX ライクのシェル環境です.
デフォルトのターミナルとシェルは mintty と bash,パッケージ管理には Arch Linux の pacman を採用しています.
MSYS の msys,MinGW の mingw32 と mingw64 の 3 種類のバイナリがあり,それぞれ別々のディレクトリにインストールされます.
MSYS の gcc で生成したバイナリは msys-2.0.dll に依存するため,MSYS2 環境下でしか実行することができませんが,MinGW の gcc で生成したバイナリは単独で実行することができます.
インストール
インストーラは ここ からダウンロードできます.
セットアップが完了すると,
- MSYS2 MSYS
- MSYS2 MinGW 32-bit
- MSYS2 MinGW 64-bit
の 3 つのシェルが使えるようになります.
いずれも実体は C:\msys64\msys2_shell.cmd
です.
これらはすべて MSYS のバイナリがインストールされたディレクトリをパスに含みますが,起動時のオプションによっては MinGW のディレクトリもパスに含めます.
とりあえず,MSYS2 MinGW 64-bit を使えばいいでしょう.
続いて,pacman の更新を行います.
まず,パッケージデータベースを更新し,pacman の更新を行います.
pacman -Sy pacman
必要があればターミナルを再起動します.
次に,パッケージデータベースとコアシステムパッケージを更新します.
pacman -Syu
必要があれば,再度ターミナルを再起動してパッケージの更新を継続します.
pacman -Su
以上でインストールは終了です.
パッケージの管理
pacman は非常に使いやすいパッケージ管理システムです.
パッケージの検索
% pacman -Ss [パッケージ名]
パッケージのインストール
% pacman -S [パッケージ名]
パッケージの削除
% pacman -R [パッケージ名]
パッケージとそれ以外で使用されていない依存関係にあるパッケージを削除
% pacman -Rs [パッケージ名]
リポジトリとローカルパッケージデータベースとの同期およびアップグレード
% pacman -Syu
インストール済みパッケージの検索
% pacman -Qs [パッケージ名]
インストール済みパッケージの情報
% pacman -Qi [パッケージ名]
キャッシュと使われていないリポジトリのクリーンアップ
% pacman -Scc
インストール済みパッケージの表示
% pacman -Q
Windows にこだわる必要が無いのであれば,この機会に Arch Linux に移行してみてはいかがでしょうか.
pacman の設定
パッケージを検索したときに msys, mingw32, mingw64 それぞれのバイナリが表示されて見づらいので,mingw32 のバイナリを表示しないようにします.
-[mingw32]
-Include = /etc/pacman.d/mirrorlist.mingw32
+#[mingw32]
+#Include = /etc/pacman.d/mirrorlist.mingw32
カラー表示を有効にします.
-#Color
+Color
Zsh のインストール
pacman から Zsh 本体と設定をインストールしておきます.
pacman -S zsh grml-zsh-config
次に,ターミナル起動時に Zsh が起動するように C:\msys64\msys2_shell.cmd
の設定を変更します.
-start "%CONTITLE%" "%WD%mintty" -i /msys2.ico /usr/bin/bash --login %1 %2 %3 %4 %5 %6 %7 %8 %9
+start "%CONTITLE%" "%WD%mintty" -i /msys2.ico /usr/bin/zsh --login %1 %2 %3 %4 %5 %6 %7 %8 %9
ターミナルを再起動すると Zsh がお出迎えしてくれます.
gcc のインストール
pacman で gcc のパッケージを検索してみます.
pacman -Ss gcc
mingw64/mingw-w64-x86_64-gcc 6.2.0-2 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-ada 6.2.0-2 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (Ada) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-fortran 6.2.0-2 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (Fortran) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-libgfortran 6.2.0-2 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (libgfortran) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-libs 6.2.0-2 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (libraries) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-objc 6.2.0-2 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64
mingw64/mingw-w64-x86_64-lcov 1.12-1
front-end for GCC's coverage testing tool gcov
msys/gcc 5.3.0-3 (msys2-devel)
The GNU Compiler Collection - C and C++ frontends
msys/gcc-fortran 5.3.0-3 (msys2-devel)
Fortran front-end for GCC
msys/gcc-libs 5.3.0-3 (base)
Runtime libraries shipped by GCC
msys/mingw-w64-cross-gcc 5.3.0-1 (mingw-w64-cross-toolchain mingw-w64-cross)
Cross GCC for the MinGW-w64
mingw64/mingw-w64-x86_64-gcc
と msys/gcc
の 2 種類のバイナリがあることが確認できます.
MinGW の gcc をインストールする場合は,
pacman -S mingw-w64-x86_64-gcc
MSYS の gcc をインストールする場合は,
pacman -S gcc
とします.
余談ですが,開発環境をまとめてインストールしたい場合は次のグループをインストールすればだいたいのものはそろいます.
-
base-devel
- いろんなパッケージのビルド -
msys2-devel
- msys2 パッケージのビルド -
mingw-w64-i686-toolchain
- mingw32 パッケージのビルド -
mingw-w64-x86_64-toolchain
- mingw64 パッケージのビルド