MSYS2のインストール手順を解説したサイトはいくつもありますが、それらの殆どが、本家に掲載されているMSI仕様の"msys2-x86_64-yyyymmdd.exe"インストーラを使用してインストールするというもの。
だけど、WINDOWS上にPOSIX Shell環境を構築しようというのに、MS Installerを使用するというのは癪(しゃく)じゃないですか?
そこで、MSYS2のtarball版を入手してインストールしました。 その手順について。
tarball版を入手する
msys2リポジトリから直接、msys2 tarballの最新版
"msys2-<architecture>-latest.tar.xz"
をD/Lします。
以下、64bit版Windowsでの使用を前提として稿を進めるので、D/Lすべきtarballは、
"msys2-x86_64-latest.tar.xz"
となります。
tarballの展開、設置
D/Lしたtarballを展開する(.tar.xz形式は7-Zipなどで展開できる)と、展開フォルダ'msys64'ができます。
この展開フォルダ'msys64'を、任意の場所に移動してMSYS2システムフォルダとします。
私は、C:\直下へ置いています。
インストール(みたいな・・・)
インストールと書いたけど、Windowsバッチファイルを走らせるだけ。レジストリも汚さない(たぶん^^;)し、Windowsにアプリ登録もされません。
前述のMSYS2システムフォルダ'msys64'をエクスプローラで開き、このフォルダ中の'msys2_shell.cmd'スクリプトを、オプションや引数なしで実行(マウスでダブルクリックして起動)します。
(エラーがいくつか出るかも知れないが、スルー)
スクリプトが終了するとコマンドプロンプト状態となるので、ターミナルのshellプロンプトでexitして初期ターミナルを抜けます。
環境設定
ターミナル&Shellの起動あれこれ
MSYS2ターミナル&Shellを起動するには、前項でも走らせたWindowsスクリプト(バッチファイル)'msys2_shell.cmd'を、開発環境を指定する引数とともに実行します。
そのコマンドラインは、以下のとおり。
- MSYS2ネイティブ環境
MSYS2ネイティブ環境は、cygwinランタイムライブラリを使用しているので、この下でビルドされるバイナリはMSYS2ランタイム環境下でしか動作できません。
私は、この環境を、UNIX/Linuxのソースレベルクロス開発環境として使っています。
msys2_shell.cmd -msys
msys2_shell.cmd -msys2
以下の各環境では、Windowsランタイムライブラリを使用するので、この下でビルドされるバイナリはWindowsネイティブ環境下でも動作します。
MSYS2でのWindowsプログラム開発は、下記いずれかの環境下で行います。
- MinGW 64bit Windows開発環境
msys2_shell.cmd -mingw64
- UCRT 64bit Windows開発環境
msys2_shell.cmd -ucrt64
- CLANG 64bit Windows開発環境
msys2_shell.cmd -clang64
- CLANG ARM64bit Windows開発環境
msys2_shell.cmd -clangarm64
これら各環境の違いは、本家environmentsのページに詳解されています。確信がなければUCRT64を使え、とも。
なお、これらをWindows GUIのマウス操作で起動できるように、それぞれのショートカットを作っておくと良いでしょう。
ショートカット用と思われるアイコンも、システムフォルダ直下に用意されています。
ターミナル(mintty)の設定
取り敢えずMSYS2ネイティブ環境でターミナル&Shellを起動しましょう。
ターミナルウィンドウ左上のMSYS2アイコン
をクリックして'オプション...'(あるいは'Options...')で、ターミナルの諸設定を行います。
以下、私の設定・・・
- 外観(Looks)->カーソル(Cursor):四角(Block)、点滅(Blinking)
- テキスト(Text)->フォント(Font):MyricaM M, 11pt
- テキスト(Text)->ロケール(Locale):ja_JP
- テキスト(Text)->文字セット(Character set):UTF-8
- ウィンドウ(Window)->既定のサイズ(Size):144x48
etc...
これらの設定は、ユーザホームディレクトリ直下のmintty設定ファイル'.minttyrc'に保存されます。このファイルを編集すれば、上記以外のパラメータも設定できます。
例えば、ターミナルウィンドウ初期位置の指定とか。
- デスクトップの左上を(0, 0)としてterminal windowの左上を(100, 150)の位置に
X=100
Y=150
開発環境構築
パッケージマネージャとパッケージの更新
パッケージマネージャ'pacman'の準備としてパッケージデータベースを最新のものに更新し、さらにパッケージ全体をアップデートします。
pacmanの同期コマンド-Sにyオプション(データベース更新)uオプション(パッケージアップデート)を与えることで、この双方を一度で行えます。
$ pacman -Syu
開発ツール類のインストール
諸コマンドのインストールは、pacmanに同期コマンド-Sとパッケージ名を与えて実行します。
まず、MSYS2ネイティブ開発環境の諸ツール・・・
- MSYS2ターミナルの下で
$ pacman -S vim # とか、
$ pacman -S gcc # とか、
$ pacman -S make # とか、
$ pacman -S openssh # とか
次にWindows開発環境の諸ツール・・・
MinGW/UCRT/CLANG/CLANG ARMのいずれかのターミナルを立ち上げて、その下で下記を実行します。
- MinGW64ターミナルの下で
$ pacman -S mingw-w64-x86_64-toolchain
- UCRTターミナルの下で
$ pacman -S mingw-w64-ucrt-x86_64-toolchain
- CLANGターミナルの下で
$ pacman -S mingw-w64-clang-x86_64-toolchain
CLANG ARMの開発ツールについては、どのパッケージをインストールすれば良いのかわかりかねました m(_ _)m
これらそれぞれのシェル環境では、MSYS2ネイティブ環境とは環境変数PATHが異なっています。
これにより、その開発環境用の開発ツールがシステムに存在する場合には、それらがMSYS2ネイティブ版に優先して使用される訳です。
これでひと通りの開発ツールはインストールされました。
足りないものは、pacman -S <package>にてお好きにどうぞ。