Help us understand the problem. What is going on with this article?

Windows10の開発環境をMSYS2で再構築

More than 3 years have passed since last update.

動機

Windowsマシンの開発関係セットアップ
http://qiita.com/hotchpotch/items/92667843a0a61e8b2cbb

MSYS2で快適なターミナル生活
http://qiita.com/Ted-HM/items/4f2feb9fdacb6c72083c

Windowsで使えるターミナルとシェルのまとめ
http://qiita.com/Ted-HM/items/9a60f6fcf74bbd79a904

Windows 10 にアップデートしたので、開発環境を再構築しました
http://hateda.hatenadiary.jp/entry/win-10-devenv

これらのページを観て、当初はMinGW + 付属のmsysを導入して使っていたのを、MSYS2を入れてMinGWを後から入れる形に変えたくなった。

OS環境

Windows10 64bit

やったことの順序

MSYS2のインストール

https://msys2.github.io/

ここから x86_64 版(64bit版)をダウンロードしてインストール。 C:\msys64 にインストールされる。MSYS2 64bitを起動するには、スタートメニュー→すべてのアプリ→「M」→「MSYS2 64bit」→「MSYS2 Shell」をクリックする。(MinGW用のショートカットもありますが、まだインストールしていないので、今は使用しません。)

MSYS2のpacmanを使う

pacmanは、ゲームではなくMSYS2のパッケージ管理システム。まずはパッケージ管理のデータベースの更新とpacmanのインストールを行う。

pacman -Sy pacman

一旦 exit コマンドでMSYS2を閉じて、再度「MSYS2 Shell」を起動。次のコマンドでMSYS2のうちコアなパッケージを更新する。

pacman --needed -S bash pacman pacman-mirrors msys2-runtime

※なお、公式サイトの説明では、pacmanのインストール後、 pacman -Syu なり pacman -Syuu なりを実行してコアなパッケージを更新するよう書かれていますが、コアなパッケージのみアップデート→MSYS2を終了して再起動→その他のアップデートという流れで実行しないとアップデート中にエラーが出る場合があります。その場合は、 MSYS2のアンインストール→OSの再起動→ C:\msys64フォルダが残っていたら完全削除 をして、最初からやり直すのが無難です。(参考:http://yaritakunai.hatenablog.com/entry/2015/11/07/201000

更新インストールがあって適用したら再度MSYS2を閉じて「MSYS2 Shell」を起動。他の必要な更新を行うコマンドを実行する。

pacman -Su

pacman初回利用時の注意

こちらの環境だけかもしれませんが、以下のようなエラーが表示されました。

(1/2) 更新 filesystem                              [#####################] 100%

      WARNING: the shell starting scripts have been unified. Please update your
      shortcuts to the following targets, otherwise they will STOP WORKING:

          * MSYS2_ROOT\msys2_shell.cmd -mingw32
          * MSYS2_ROOT\msys2_shell.cmd -mingw64
          * MSYS2_ROOT\msys2_shell.cmd -msys

(2/2) 更新 mintty                                  [#####################] 100%
警告: terminate MSYS2 without returning to shell and check for updates again
警告: for example close your terminal window instead of calling exit

minttyのアップデート後、上記の表示によりコマンドを受け付けなくなったため、「×」ボタンをクリックしてウィンドウを終了しました。

更に、filesystemの更新により、スタートメニュー内のショートカットが正常に実行できなくなりました。ショートカットのリンク先に指定されたbatファイルがアップデートで無くなったためです。アラート表示にも書かれているとおりに、「MinGW-w64 Win32 Shell」「MinGW-w64 Win64 Shell」「MSYS2 Shell」のそれぞれのリンク先をアラート表示の内容に編集してください。例えば、MSYS2 Shellの場合は、 C:\Windows\System32\cmd.exe /A /Q /K C:\msys64\msys2_shell.bat から C:\msys64\msys2_shell.cmd -msys に変更してください。

※さらに後ろに -use-full-path を入れておくとWindowsのPATHの設定を含めてくれるので、別途WindowsにインストールしたソフトウェアをMSYS2で利用できます。

MinGWをpacmanでインストール

「MSYS2 Shell」を起動。MinGWについては、pacmanで以下のものをインストールしておけば間違いないらしい。(参考:http://verifiedby.me/adiary/055

pacman -S base-devel msys2-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain

今回は、特に理由がなかったので選択指定なし(all)でインストールしようとした、のだけど、 base-devel に入っている pactoys-gitrepman-git が衝突しているって出た。 repman-gitを削除するか聞かれた。迷ったので調べたところ、 pactoys-git をインストールしない方が良さそうな感じだったので、インストール時の設定で pactoys-git は外した。(参考:https://twitter.com/vc450j/status/737160037559193600

これでMinGWのインストールが完了。gccなどを利用したい場合は「MinGW-w64 Win64 Shell」の方を実行する。

後は適宜、必要なものをpacmanの pacman -S <パッケージ名> コマンドを使ってインストールしていけばOK。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away