More than 1 year has passed since last update.

MSYS の後継(?)とも言える MSYS2 では開発環境を 32bit と 64bit で併設できるらしい。

追記

最近来られた方,古い記事でごめんなさい。
この記事については私のブログでフォローしています。
こちらの記事で分かりにくければ向こうも参考にしてください。

MSYS2 のインストール

MSYS2 installer” の案内に従って 64bit 版のインストーラを取得してインストールする。以下,スナップショット

MSYS2 Installation 1

わお! 日本語だ。

MSYS2 Installation 2

MSYS2 Installation 3

MSYS2 Installation 4

インストーラが終了するとターミナル(mintty)が起動する。以降はテキストで。

まずはパッケージ管理ツールのアップデートから

$ pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime
:: パッケージデータベースの同期中...
 mingw32                  238.7 KiB   925K/s 00:00 [#####################] 100%
 mingw32.sig               96.0   B  0.00B/s 00:00 [#####################] 100%
 mingw64                  239.3 KiB  3.44M/s 00:00 [#####################] 100%
 mingw64.sig               96.0   B  0.00B/s 00:00 [#####################] 100%
 msys                     126.4 KiB  3.17M/s 00:00 [#####################] 100%
 msys.sig                  96.0   B  0.00B/s 00:00 [#####################] 100%
警告: pacman-mirrors-20141223-1 は最新です -- スキップ
警告: msys2-runtime-2.1.0.16359.acadff9-1 は最新です -- スキップ
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (2) bash-4.3.039-1  pacman-4.2.1.6157.6e6093b-1

合計ダウンロード容量:   5.58 MiB
合計インストール容量:  34.55 MiB
最終的なアップグレード容量:   0.03 MiB

:: インストールを行いますか? [Y/n] y
:: パッケージを取得します ...
 bash-4.3.039-1-x86_64   1864.8 KiB  3.47M/s 00:01 [#####################] 100%
 pacman-4.2.1.6157.6...     3.8 MiB  3.54M/s 00:01 [#####################] 100%
(2/2) キーリングのキーを確認                       [#####################] 100%
(2/2) パッケージの整合性をチェック                 [#####################] 100%
(2/2) パッケージファイルのロード                   [#####################] 100%
(2/2) ファイルの衝突をチェック                     [#####################] 100%
(2/2) 空き容量を確認                               [#####################] 100%
(1/2) 更新 bash                                    [#####################] 100%
(2/2) 更新 pacman                                  [#####################] 100%

おっと! bash も更新されてしまった。ではターミナルを再起動(インストールフォルダにある msys2_shell.bat を起動する)。

$ pacman -Syu
:: パッケージデータベースの同期中...
 mingw32 は最新です
 mingw64 は最新です
 msys は最新です
:: システム全体の更新を開始...
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (1) gawk-4.1.3-1

合計ダウンロード容量:  0.93 MiB
合計インストール容量:  2.74 MiB
最終的なアップグレード容量:  0.01 MiB

:: インストールを行いますか? [Y/n] y
:: パッケージを取得します ...
 gawk-4.1.3-1-x86_64      951.1 KiB  1865K/s 00:01 [#####################] 100%
(1/1) キーリングのキーを確認                       [#####################] 100%
(1/1) パッケージの整合性をチェック                 [#####################] 100%
(1/1) パッケージファイルのロード                   [#####################] 100%
(1/1) ファイルの衝突をチェック                     [#####################] 100%
(1/1) 空き容量を確認                               [#####################] 100%
(1/1) 更新 gawk                                    [#####################] 100%

これでパッケージの更新は完了。

MSYS2 installer” の通りに,試しに git をインストールしようとしたらエラいことに(笑)

$ pacman -S git
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (39) db-5.3.28-2  expat-2.1.0-2  gdbm-1.11-3  heimdal-1.5.3-6
                heimdal-libs-1.5.3-6  icu-51.2-2  libdb-5.3.28-2
                libedit-3.1-20130712  libgdbm-1.11-3  libsqlite-3.8.8.2-1
                openssh-6.7p1-1  perl-5.20.2-1  perl-Authen-SASL-2.16-2
                perl-Convert-BinHex-1.123-2  perl-Encode-Locale-1.03-2
                perl-Error-0.17023-1  perl-File-Listing-6.04-2
                perl-HTML-Parser-3.71-2  perl-HTML-Tagset-3.20-2
                perl-HTTP-Cookies-6.01-2  perl-HTTP-Daemon-6.01-2
                perl-HTTP-Date-6.02-2  perl-HTTP-Message-6.06-2
                perl-HTTP-Negotiate-6.01-2  perl-IO-Socket-SSL-2.008-1
                perl-IO-stringy-2.110-2  perl-LWP-MediaTypes-6.02-2
                perl-MIME-tools-5.505-2  perl-MailTools-2.13-2
                perl-Net-HTTP-6.06-2  perl-Net-SMTP-SSL-1.01-2
                perl-Net-SSLeay-1.64-1  perl-TermReadKey-2.32-2
                perl-TimeDate-2.30-2  perl-URI-1.65-1  perl-WWW-RobotRules-6.02-2
                perl-libwww-6.08-1  vim-7.4.728-1  git-2.4.1-1

合計ダウンロード容量:   30.29 MiB
合計インストール容量:  134.32 MiB

:: インストールを行いますか? [Y/n] y
:: パッケージを取得します ...
 expat-2.1.0-2-x86_64              13.1 KiB  6.39M/s 00:00 [#############] 100%
 libdb-5.3.28-2-x86_64            656.4 KiB   714K/s 00:01 [#############] 100%
 db-5.3.28-2-x86_64                41.7 KiB   221K/s 00:00 [#############] 100%
 libgdbm-1.11-3-x86_64             20.4 KiB   214K/s 00:00 [#############] 100%
 gdbm-1.11-3-x86_64               108.5 KiB   359K/s 00:00 [#############] 100%
 perl-5.20.2-1-x86_64              10.7 MiB  2.75M/s 00:04 [#############] 100%
 perl-Error-0.17023-1-any          18.3 KiB  17.9M/s 00:00 [#############] 100%
 vim-7.4.728-1-x86_64               5.9 MiB  3.36M/s 00:02 [#############] 100%
 icu-51.2-2-x86_64                  6.0 MiB  1339K/s 00:05 [#############] 100%
 libsqlite-3.8.8.2-1-x86_64       399.1 KiB  1339K/s 00:00 [#############] 100%
 heimdal-libs-1.5.3-6-x86_64      583.9 KiB  3.41M/s 00:00 [#############] 100%
 heimdal-1.5.3-6-x86_64           534.3 KiB  3.14M/s 00:00 [#############] 100%
 libedit-3.1-20130712-x86_64       74.8 KiB  44.3K/s 00:02 [#############] 100%
 openssh-6.7p1-1-x86_64           665.5 KiB   286K/s 00:02 [#############] 100%
 perl-Authen-SASL-2.16-2-any       42.4 KiB  77.5K/s 00:01 [#############] 100%
 perl-Encode-Locale-1.03-2-any     10.0 KiB  4.87M/s 00:00 [#############] 100%
 perl-HTTP-Date-6.02-2-any          8.6 KiB  8.42M/s 00:00 [#############] 100%
 perl-File-Listing-6.04-2-any       7.7 KiB  3.76M/s 00:00 [#############] 100%
 perl-HTML-Tagset-3.20-2-any       10.3 KiB  5.01M/s 00:00 [#############] 100%
 perl-HTML-Parser-3.71-2-x86_64    81.6 KiB  93.6K/s 00:01 [#############] 100%
 perl-LWP-MediaTypes-6.02-2-any    18.0 KiB  62.9K/s 00:00 [#############] 100%
 perl-URI-1.65-1-any               82.6 KiB   276K/s 00:00 [#############] 100%
 perl-HTTP-Message-6.06-2-any      71.3 KiB  83.1K/s 00:01 [#############] 100%
 perl-HTTP-Cookies-6.01-2-any      20.4 KiB  74.9K/s 00:00 [#############] 100%
 perl-HTTP-Daemon-6.01-2-any       14.2 KiB  49.9K/s 00:00 [#############] 100%
 perl-HTTP-Negotiate-6.01-2-any    11.4 KiB  5.58M/s 00:00 [#############] 100%
 perl-Net-HTTP-6.06-2-any          20.9 KiB  10.1K/s 00:02 [#############] 100%
 perl-WWW-RobotRules-6.02-2-any    12.2 KiB  5.98M/s 00:00 [#############] 100%
 perl-libwww-6.08-1-any           132.1 KiB   118K/s 00:01 [#############] 100%
 perl-TimeDate-2.30-2-any          35.9 KiB  64.1K/s 00:01 [#############] 100%
 perl-MailTools-2.13-2-any         66.1 KiB  78.2K/s 00:01 [#############] 100%
 perl-IO-stringy-2.110-2-any       58.1 KiB  98.7K/s 00:01 [#############] 100%
 perl-Convert-BinHex-1.123-2-any   30.1 KiB   108K/s 00:00 [#############] 100%
 perl-MIME-tools-5.505-2-any      194.4 KiB   137K/s 00:01 [#############] 100%
 perl-Net-SSLeay-1.64-1-x86_64    187.3 KiB   133K/s 00:01 [#############] 100%
 perl-IO-Socket-SSL-2.008-1-any   111.8 KiB   565K/s 00:00 [#############] 100%
 perl-Net-SMTP-SSL-1.01-2-any       4.2 KiB  4.13M/s 00:00 [#############] 100%
 perl-TermReadKey-2.32-2-x86_64    21.9 KiB  77.8K/s 00:00 [#############] 100%
 git-2.4.1-1-x86_64                 3.4 MiB  4.08M/s 00:01 [#############] 100%
(39/39) キーリングのキーを確認                             [#############] 100%
(39/39) パッケージの整合性をチェック                       [#############] 100%
(39/39) パッケージファイルのロード                         [#############] 100%
(39/39) ファイルの衝突をチェック                           [#############] 100%
(39/39) 空き容量を確認                                     [#############] 100%
( 1/39) インストール expat                                 [#############] 100%
( 2/39) インストール libdb                                 [#############] 100%
( 3/39) インストール db                                    [#############] 100%
( 4/39) インストール libgdbm                               [#############] 100%
( 5/39) インストール gdbm                                  [#############] 100%
( 6/39) インストール perl                                  [#############] 100%
( 7/39) インストール perl-Error                            [#############] 100%
( 8/39) インストール vim                                   [#############] 100%
( 9/39) インストール icu                                   [#############] 100%
(10/39) インストール libsqlite                             [#############] 100%
(11/39) インストール heimdal-libs                          [#############] 100%
(12/39) インストール heimdal                               [#############] 100%
(13/39) インストール libedit                               [#############] 100%
(14/39) インストール openssh                               [#############] 100%
(15/39) インストール perl-Authen-SASL                      [#############] 100%
(16/39) インストール perl-Encode-Locale                    [#############] 100%
(17/39) インストール perl-HTTP-Date                        [#############] 100%
(18/39) インストール perl-File-Listing                     [#############] 100%
(19/39) インストール perl-HTML-Tagset                      [#############] 100%
(20/39) インストール perl-HTML-Parser                      [#############] 100%
(21/39) インストール perl-LWP-MediaTypes                   [#############] 100%
(22/39) インストール perl-URI                              [#############] 100%
(23/39) インストール perl-HTTP-Message                     [#############] 100%
(24/39) インストール perl-HTTP-Cookies                     [#############] 100%
(25/39) インストール perl-HTTP-Daemon                      [#############] 100%
(26/39) インストール perl-HTTP-Negotiate                   [#############] 100%
(27/39) インストール perl-Net-HTTP                         [#############] 100%
(28/39) インストール perl-WWW-RobotRules                   [#############] 100%
(29/39) インストール perl-libwww                           [#############] 100%
perl-libwww の提案パッケージ
    perl-LWP-Protocol-HTTPS: for https:// url schemes
(30/39) インストール perl-TimeDate                         [#############] 100%
(31/39) インストール perl-MailTools                        [#############] 100%
(32/39) インストール perl-IO-stringy                       [#############] 100%
(33/39) インストール perl-Convert-BinHex                   [#############] 100%
module test... pass.
(34/39) インストール perl-MIME-tools                       [#############] 100%
(35/39) インストール perl-Net-SSLeay                       [#############] 100%
(36/39) インストール perl-IO-Socket-SSL                    [#############] 100%
(37/39) インストール perl-Net-SMTP-SSL                     [#############] 100%
(38/39) インストール perl-TermReadKey                      [#############] 100%
(39/39) インストール git                                   [#############] 100%
git の提案パッケージ
    python2: various helper scripts
    subversion: git svn

てか,本当に最小限しか入ってないんだな(笑) python2 と subversion を提案されてしまったが,これはまた今度。

MSYS2 起動モード

MSYS2 の起動バッチには以下の3つがある(64bit 版をインストールした場合)

  • mingw32_shell.bat
  • mingw64_shell.bat
  • msys2_shell.bat

中身はターミナルエミュレータ(既定で mintty)の場所を探して起動するだけだが,環境変数 MSYSTEM にそれぞれ以下の値をセットしている

バッチファイル セットする値
mingw32_shell.bat MINGW32
mingw64_shell.bat MINGW64
msys2_shell.bat MSYS

環境変数 MSYSTEM/etc/profile 内で参照される。

profile
MSYS2_PATH="/usr/local/bin:/usr/bin:/bin"
MANPATH="/usr/local/man:/usr/share/man:/usr/man:/share/man:${MANPATH}"
INFOPATH="/usr/local/info:/usr/share/info:/usr/info:/share/info:${INFOPATH}"
MINGW_MOUNT_POINT=
if [ -n "$MSYSTEM" ]
then
  case "$MSYSTEM" in
    MINGW32)
      MINGW_MOUNT_POINT=/mingw32
      PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}"
      PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
      ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
      MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
    ;;
    MINGW64)
      MINGW_MOUNT_POINT=/mingw64
      PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}"
      PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
      ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
      MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
    ;;
    MSYS)
      PATH="${MSYS2_PATH}:/opt/bin:${PATH}"
      PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig"
    ;;
    *)
      PATH="${MSYS2_PATH}:${PATH}"
    ;;
  esac
else
  PATH="${MSYS2_PATH}:${PATH}"
fi

MINGW32 または MINGW64 の場合は,新たに /mingw32 または /mingw64 がパス等に追加されているのが分かるだろう。

各モードはインストール元のリポジトリと関連している。

バッチファイルのチューニング

上述の /etc/profile に書かれている通り MSYS2 では Windows の PATH も取り込むが,実際には MSYS2 上で動いてほしくないものもあるので,バッチファイル内で PATH を潰すか,または以下のように

msys2_shell.bat
set PATH=%SystemRoot%System32

必要なものだけ再設定する。 Windows 上の特定のツールを使いたい場合はフルパス(もしくはその alias)で指定するか, /etc/fstab でマウントするほうがスマート。

MSYS2 のホームディレクトリは,インストールフォルダ直下の home\username フォルダになるが, Windows 上で自前のホームディレクトリを作っている場合は,その場所を /etc/fstab でマウントする手もある。

fstab
C:/home     /home

この場合,元のフォルダにある .profile ファイル等の移動も忘れないこと。

MSYS2 のパッケージ管理

MSYS2 では pacman でパッケージ管理を行うらしい。
pacman は元々 Arch Linux のパッケージ管理ツールで,使い方もこれと同じようだ。

よく使うコマンドとしては

  • pacman -S <package_name1> [package_name2...] : 指定したパッケージをインストールする
  • pacman -Sl [repository] : パッケージを一覧表示する(リポジトリを指定可能)
  • pacman -Ss [regex...] : パッケージを一覧・検索する(キーワードを指定可能)
  • pacman -Su : インストール済みのパッケージを更新する
  • pacman -Sy : パッケージのデータベースを更新する
  • pacman -Syu : -Su, -Sy の同時指定
  • pacman -Q [package_name...] : インストール済みパッケージを一覧・検索する(パッケージを指定可能)
  • pacman -Qs [regex...] : インストール済みパッケージを一覧・検索する(をキーワードを指定可能)
  • pacman -R <package_name> : 指定したパッケージを削除する
  • pacman -Rs <package_name> : 依存関係を含めて指定したパッケージを削除する(指定したパッケージにのみ依存するパッケージを削除)

あたりか。

MSYS2 のリポジトリ

/etc/pacman.conf を見ると MSYS2 では mingw32, mingw64, msys の3つのリポジトリを管理していることが分かる。

$arch はインストールした MSYS2 のアーキテクチャによって異なる。 64bit 版を入れた場合は x86_64 になる筈である。

例えば,以下に示すように gcc もリポジトリごとにそれぞれある。

$ pacman -Sl | grep gcc
mingw32 mingw-w64-i686-gcc 4.9.2-5
mingw32 mingw-w64-i686-gcc-ada 4.9.2-5
mingw32 mingw-w64-i686-gcc-ada-debug 4.9.1-3
mingw32 mingw-w64-i686-gcc-debug 4.9.1-3
mingw32 mingw-w64-i686-gcc-fortran 4.9.2-5
mingw32 mingw-w64-i686-gcc-fortran-debug 4.9.1-3
mingw32 mingw-w64-i686-gcc-libgfortran 4.9.2-5
mingw32 mingw-w64-i686-gcc-libgfortran-debug 4.9.1-3
mingw32 mingw-w64-i686-gcc-libs 4.9.2-5
mingw32 mingw-w64-i686-gcc-libs-debug 4.9.1-3
mingw32 mingw-w64-i686-gcc-objc 4.9.2-5
mingw32 mingw-w64-i686-gcc-objc-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-ada 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-ada-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc-fortran 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-fortran-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc-libgfortran 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-libgfortran-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc-libs 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-libs-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc-objc 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-objc-debug 4.9.1-3
msys gcc 4.9.2-4
msys gcc-fortran 4.9.2-4
msys gcc-libs 4.9.2-4
msys mingw-w64-cross-gcc 4.9.2-2

どれを使うかはユーザ次第だが, msys の方は開発用というより MSYS2 ビルド用という感じである(微妙にバージョンが古い)。 gcc を 32bit 版と 64bit 版で使い分ける場合は msys 版は入れないほうがいいかもしれない。

gcc のインストール

gcc のスレッドモデルと例外処理

mingw32 または mingw64 で提供される gcc では,スレッドモデルと例外処理は以下のようになっているらしい。
(「MSYS2 / Tickets / #24 Mingw64 downloads through msys2?」より)

On MSYS2 I maintain only one configuration:
32-bit: threads=posix, exceptions=dwarf
64-bit: threads=posix, exceptions=seh

MSYS2 のベースになっている MinGW-w64 のスレッドモデルには win32 と posix が提供されている。 win32 は Windows ネイティブなスレッド関連関数を使っているため速いが, C++11 の thread, mutex, future はサポートしていないらしい。

例外処理には SJLJ(SetJump/LongJump), DWARF2, SEH(Structured Exception Handling)があり,この中では Windows ネイティブな SEH が一番速い。ただし SEH は 64bit gcc でしか対応していないため 32bit 環境では使えない。

MinGW-w64 ではインストール時にスレッドモデルと例外処理を選択できる。

MinGW-w64 のもうひとつの実装である TDM-GCC では,スレッドモデルには posix,例外処理には SJLJ(32bit)または SEH(64bit)が設定されているようだ。
(“TDM-GCC : Quirks” より)

TDM-GCC includes a pthreads emulation layer for Microsoft Windows systems, called "winpthreads". This lets you use std::thread and other C++11 concurrency features in your programs, out of the box.

64-bit binaries use "SEH", which stands for "Structured Exception Handling".

If you create a 32-bit binary with the TDM64 edition, it will use SJLJ exception handling. DW2 exception handling is not available in this edition.

MSYS2 関連ツールのインストール

まずは msys2_shell.bat でターミナルを起動する。

開発用に必要なツールをインストールする(上述の git インストールでインストールされなかったもの)。

$ pacman -S patch 
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (1) patch-2.7.5-1

合計ダウンロード容量:  0.07 MiB
合計インストール容量:  0.15 MiB

:: インストールを行いますか? [Y/n] y
:: パッケージを取得します ...
 patch-2.7.5-1-x86_64      75.9 KiB   460K/s 00:00 [#####################] 100%
(1/1) キーリングのキーを確認                       [#####################] 100%
(1/1) パッケージの整合性をチェック                 [#####################] 100%
(1/1) パッケージファイルのロード                   [#####################] 100%
(1/1) ファイルの衝突をチェック                     [#####################] 100%
(1/1) 空き容量を確認                               [#####################] 100%
(1/1) インストール patch                           [#####################] 100%
patch の提案パッケージ
    ed: for patch -e functionality

32bit 版 gcc のインストール

mingw32_shell.bat でターミナルを起動し mingw-w64-i686-toolchain をインストールする。

$ pacman -S mingw-w64-i686-toolchain
:: 16 のパッケージがグループ mingw-w64-i686-toolchain にあります:
:: リポジトリ mingw32
   1) mingw-w64-i686-binutils  2) mingw-w64-i686-crt-git  3) mingw-w64-i686-gcc
   4) mingw-w64-i686-gcc-ada  5) mingw-w64-i686-gcc-fortran  6) mingw-w64-i686-gcc-libgfortran
   7) mingw-w64-i686-gcc-libs  8) mingw-w64-i686-gcc-objc  9) mingw-w64-i686-gdb
   10) mingw-w64-i686-headers-git  11) mingw-w64-i686-libmangle-git
   12) mingw-w64-i686-libwinpthread-git  13) mingw-w64-i686-make  14) mingw-w64-i686-tools-git
   15) mingw-w64-i686-winpthreads-git  16) mingw-w64-i686-winstorecompat-git

選択して下さい (デフォルト=all): 1 2 3 7 9 10 11 12 13 14 15 16
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (33) mingw-w64-i686-bzip2-1.0.6-3  mingw-w64-i686-cloog-0.18.1-3
                mingw-w64-i686-expat-2.1.0-5  mingw-w64-i686-gdbm-1.11-2
                mingw-w64-i686-gettext-0.19.4-2  mingw-w64-i686-gmp-6.0.0-2
                mingw-w64-i686-isl-0.13-1  mingw-w64-i686-libffi-3.2.1-2
                mingw-w64-i686-libiconv-1.14-4  mingw-w64-i686-libsystre-1.0.1-1
                mingw-w64-i686-libtre-git-r122.c2f5d13-3  mingw-w64-i686-mpc-1.0.3-1
                mingw-w64-i686-mpfr-3.1.2.p11-1  mingw-w64-i686-ncurses-5.9.20150321-1
                mingw-w64-i686-openssl-1.0.2.a-1  mingw-w64-i686-python2-2.7.10-1
                mingw-w64-i686-readline-6.2.005-3  mingw-w64-i686-tcl-8.6.4-1
                mingw-w64-i686-termcap-1.3.1-1  mingw-w64-i686-tk-8.6.4-1
                mingw-w64-i686-zlib-1.2.8-7  mingw-w64-i686-binutils-2.25-4
                mingw-w64-i686-crt-git-5.0.0.4501.4421b4a-1  mingw-w64-i686-gcc-4.9.2-5
                mingw-w64-i686-gcc-libs-4.9.2-5  mingw-w64-i686-gdb-7.9.1-1
                mingw-w64-i686-headers-git-5.0.0.4501.4421b4a-1
                mingw-w64-i686-libmangle-git-5.0.0.4497.4254261-1
                mingw-w64-i686-libwinpthread-git-5.0.0.4497.4254261-1
                mingw-w64-i686-make-4.0.2289.432cb65-1
                mingw-w64-i686-tools-git-5.0.0.4497.4254261-1
                mingw-w64-i686-winpthreads-git-5.0.0.4497.4254261-1
                mingw-w64-i686-winstorecompat-git-5.0.0.4497.4254261-1

合計ダウンロード容量:   68.00 MiB
合計インストール容量:  443.18 MiB

:: インストールを行いますか? [Y/n] y
:: パッケージを取得します ...
 mingw-w64-i686-libiconv-1.14-4-any       602.3 KiB  1870K/s 00:00 [#####################] 100%
 mingw-w64-i686-bzip2-1.0.6-3-any          64.9 KiB  9.06M/s 00:00 [#####################] 100%
 mingw-w64-i686-zlib-1.2.8-7-any          152.2 KiB  3.23M/s 00:00 [#####################] 100%
 mingw-w64-i686-binutils-2.25-4-any        10.2 MiB  2.19M/s 00:05 [#####################] 100%
 mingw-w64-i686-headers-git-5.0.0.45...     4.9 MiB  2.53M/s 00:02 [#####################] 100%
 mingw-w64-i686-crt-git-5.0.0.4501.4...  1675.5 KiB  3.10M/s 00:01 [#####################] 100%
 mingw-w64-i686-libwinpthread-git-5....    38.1 KiB  12.4M/s 00:00 [#####################] 100%
 mingw-w64-i686-winpthreads-git-5.0....    46.9 KiB  9.16M/s 00:00 [#####################] 100%
 mingw-w64-i686-gmp-6.0.0-2-any           430.8 KiB   192K/s 00:02 [#####################] 100%
 mingw-w64-i686-mpfr-3.1.2.p11-1-any      241.7 KiB   952K/s 00:00 [#####################] 100%
 mingw-w64-i686-mpc-1.0.3-1-any            62.5 KiB  8.72M/s 00:00 [#####################] 100%
 mingw-w64-i686-isl-0.13-1-any            446.6 KiB  96.8K/s 00:05 [#####################] 100%
 mingw-w64-i686-cloog-0.18.1-3-any         63.8 KiB  74.2K/s 00:01 [#####################] 100%
 mingw-w64-i686-gcc-libs-4.9.2-5-any      492.2 KiB  1469K/s 00:00 [#####################] 100%
 mingw-w64-i686-gcc-4.9.2-5-any            21.7 MiB  3.12M/s 00:07 [#####################] 100%
 mingw-w64-i686-expat-2.1.0-5-any         106.9 KiB  1527K/s 00:00 [#####################] 100%
 mingw-w64-i686-gettext-0.19.4-2-any        3.9 MiB  2.97M/s 00:01 [#####################] 100%
 mingw-w64-i686-gdbm-1.11-2-any           150.1 KiB  2.04M/s 00:00 [#####################] 100%
 mingw-w64-i686-libffi-3.2.1-2-any         33.7 KiB   544K/s 00:00 [#####################] 100%
 mingw-w64-i686-libtre-git-r122.c2f5...    69.2 KiB  1064K/s 00:00 [#####################] 100%
 mingw-w64-i686-libsystre-1.0.1-1-any       9.2 KiB   306K/s 00:00 [#####################] 100%
 mingw-w64-i686-ncurses-5.9.20150321...  1618.5 KiB  5.58M/s 00:00 [#####################] 100%
 mingw-w64-i686-openssl-1.0.2.a-1-any       2.7 MiB  3.09M/s 00:01 [#####################] 100%
 mingw-w64-i686-termcap-1.3.1-1-any        12.2 KiB  11.9M/s 00:00 [#####################] 100%
 mingw-w64-i686-readline-6.2.005-3-any    235.5 KiB  76.1K/s 00:03 [#####################] 100%
 mingw-w64-i686-tcl-8.6.4-1-any             2.8 MiB  4.20M/s 00:01 [#####################] 100%
 mingw-w64-i686-tk-8.6.4-1-any           1873.4 KiB  3.45M/s 00:01 [#####################] 100%
 mingw-w64-i686-python2-2.7.10-1-any       10.6 MiB  4.04M/s 00:03 [#####################] 100%
 mingw-w64-i686-gdb-7.9.1-1-any             2.7 MiB  5.08M/s 00:01 [#####################] 100%
 mingw-w64-i686-libmangle-git-5.0.0....    16.7 KiB   521K/s 00:00 [#####################] 100%
 mingw-w64-i686-make-4.0.2289.432cb6...   103.6 KiB  59.9K/s 00:02 [#####################] 100%
 mingw-w64-i686-tools-git-5.0.0.4497...   222.1 KiB   854K/s 00:00 [#####################] 100%
 mingw-w64-i686-winstorecompat-git-5...     5.2 KiB  0.00B/s 00:00 [#####################] 100%
(33/33) キーリングのキーを確認                                     [#####################] 100%
(33/33) パッケージの整合性をチェック                               [#####################] 100%
(33/33) パッケージファイルのロード                                 [#####################] 100%
(33/33) ファイルの衝突をチェック                                   [#####################] 100%
(33/33) 空き容量を確認                                             [#####################] 100%
( 1/33) インストール mingw-w64-i686-libiconv                       [#####################] 100%
( 2/33) インストール mingw-w64-i686-bzip2                          [#####################] 100%
( 3/33) インストール mingw-w64-i686-zlib                           [#####################] 100%
( 4/33) インストール mingw-w64-i686-binutils                       [#####################] 100%
( 5/33) インストール mingw-w64-i686-headers-git                    [#####################] 100%
( 6/33) インストール mingw-w64-i686-crt-git                        [#####################] 100%
( 7/33) インストール mingw-w64-i686-libwinpthread-git              [#####################] 100%
( 8/33) インストール mingw-w64-i686-winpthreads-git                [#####################] 100%
( 9/33) インストール mingw-w64-i686-gmp                            [#####################] 100%
(10/33) インストール mingw-w64-i686-mpfr                           [#####################] 100%
(11/33) インストール mingw-w64-i686-mpc                            [#####################] 100%
(12/33) インストール mingw-w64-i686-isl                            [#####################] 100%
(13/33) インストール mingw-w64-i686-cloog                          [#####################] 100%
(14/33) インストール mingw-w64-i686-gcc-libs                       [#####################] 100%
(15/33) インストール mingw-w64-i686-gcc                            [#####################] 100%
(16/33) インストール mingw-w64-i686-expat                          [#####################] 100%
(17/33) インストール mingw-w64-i686-gettext                        [#####################] 100%
(18/33) インストール mingw-w64-i686-gdbm                           [#####################] 100%
(19/33) インストール mingw-w64-i686-libffi                         [#####################] 100%
(20/33) インストール mingw-w64-i686-libtre-git                     [#####################] 100%
(21/33) インストール mingw-w64-i686-libsystre                      [#####################] 100%
(22/33) インストール mingw-w64-i686-ncurses                        [#####################] 100%
(23/33) インストール mingw-w64-i686-openssl                        [#####################] 100%
(24/33) インストール mingw-w64-i686-termcap                        [#####################] 100%
(25/33) インストール mingw-w64-i686-readline                       [#####################] 100%
(26/33) インストール mingw-w64-i686-tcl                            [#####################] 100%
(27/33) インストール mingw-w64-i686-tk                             [#####################] 100%
(28/33) インストール mingw-w64-i686-python2                        [#####################] 100%
(29/33) インストール mingw-w64-i686-gdb                            [#####################] 100%
(30/33) インストール mingw-w64-i686-libmangle-git                  [#####################] 100%
(31/33) インストール mingw-w64-i686-make                           [#####################] 100%
(32/33) インストール mingw-w64-i686-tools-git                      [#####################] 100%
(33/33) インストール mingw-w64-i686-winstorecompat-git             [#####################] 100%

ありゃ。 python とかも入っちゃったねぇ。

$ gcc -v
Using built-in specs.
COLLECT_GCC=C:\msys64\mingw32\bin\gcc.exe
COLLECT_LTO_WRAPPER=C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../gcc-4.9.2/configure --prefix=/mingw32 --with-local-prefix=/mingw32/local --build=i686-w64-mingw32 --host=i686-w64-mingw32 --target=i686-w64-mingw32 --with-native-system-header-dir=/mingw32/i686-w64-mingw32/include --libexecdir=/mingw32/lib --with-gxx-include-dir=/mingw32/include/c++/4.9.2 --enable-bootstrap --with-arch=i686 --with-tune=generic --enable-languages=c,lto,c++,objc,obj-c++,fortran,ada --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-cloog-backend=isl --enable-version-specific-runtime-libs --disable-cloog-version-check --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw32 --with-mpfr=/mingw32 --with-mpc=/mingw32 --with-isl=/mingw32 --with-cloog=/mingw32 --with-pkgversion='Rev5, Built by MSYS2 project' --with-bugurl=http://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld --disable-sjlj-exceptions --with-dwarf2
Thread model: posix
gcc version 4.9.2 (Rev5, Built by MSYS2 project)

64bit 版 gcc のインストール

mingw64_shell.bat でターミナルを起動し mingw-w64-x86_64-toolchain をインストールする。

$ pacman -S mingw-w64-x86_64-toolchain
:: 16 のパッケージがグループ mingw-w64-x86_64-toolchain にあります:
:: リポジトリ mingw64
   1) mingw-w64-x86_64-binutils  2) mingw-w64-x86_64-crt-git  3) mingw-w64-x86_64-gcc
   4) mingw-w64-x86_64-gcc-ada  5) mingw-w64-x86_64-gcc-fortran
   6) mingw-w64-x86_64-gcc-libgfortran  7) mingw-w64-x86_64-gcc-libs
   8) mingw-w64-x86_64-gcc-objc  9) mingw-w64-x86_64-gdb  10) mingw-w64-x86_64-headers-git
   11) mingw-w64-x86_64-libmangle-git  12) mingw-w64-x86_64-libwinpthread-git
   13) mingw-w64-x86_64-make  14) mingw-w64-x86_64-tools-git
   15) mingw-w64-x86_64-winpthreads-git  16) mingw-w64-x86_64-winstorecompat-git

選択して下さい (デフォルト=all): 1 2 3 7 9 10 11 12 13 14 15 16
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (33) mingw-w64-x86_64-bzip2-1.0.6-3  mingw-w64-x86_64-cloog-0.18.1-3
                mingw-w64-x86_64-expat-2.1.0-5  mingw-w64-x86_64-gdbm-1.11-2
                mingw-w64-x86_64-gettext-0.19.4-2  mingw-w64-x86_64-gmp-6.0.0-2
                mingw-w64-x86_64-isl-0.13-1  mingw-w64-x86_64-libffi-3.2.1-2
                mingw-w64-x86_64-libiconv-1.14-4  mingw-w64-x86_64-libsystre-1.0.1-1
                mingw-w64-x86_64-libtre-git-r122.c2f5d13-3  mingw-w64-x86_64-mpc-1.0.3-1
                mingw-w64-x86_64-mpfr-3.1.2.p11-1  mingw-w64-x86_64-ncurses-5.9.20150321-1
                mingw-w64-x86_64-openssl-1.0.2.a-1  mingw-w64-x86_64-python2-2.7.10-1
                mingw-w64-x86_64-readline-6.2.005-3  mingw-w64-x86_64-tcl-8.6.4-1
                mingw-w64-x86_64-termcap-1.3.1-1  mingw-w64-x86_64-tk-8.6.4-1
                mingw-w64-x86_64-zlib-1.2.8-7  mingw-w64-x86_64-binutils-2.25-4
                mingw-w64-x86_64-crt-git-5.0.0.4501.4421b4a-1
                mingw-w64-x86_64-gcc-4.9.2-5  mingw-w64-x86_64-gcc-libs-4.9.2-5
                mingw-w64-x86_64-gdb-7.9.1-1
                mingw-w64-x86_64-headers-git-5.0.0.4501.4421b4a-1
                mingw-w64-x86_64-libmangle-git-5.0.0.4497.4254261-1
                mingw-w64-x86_64-libwinpthread-git-5.0.0.4497.4254261-1
                mingw-w64-x86_64-make-4.0.2289.432cb65-1
                mingw-w64-x86_64-tools-git-5.0.0.4497.4254261-1
                mingw-w64-x86_64-winpthreads-git-5.0.0.4497.4254261-1
                mingw-w64-x86_64-winstorecompat-git-5.0.0.4497.4254261-1

合計ダウンロード容量:   71.58 MiB
合計インストール容量:  476.52 MiB

:: インストールを行いますか? [Y/n] y
:: パッケージを取得します ...
 mingw-w64-x86_64-libico...   598.0 KiB  1886K/s 00:00 [############################] 100%
 mingw-w64-x86_64-bzip2-...    66.9 KiB  9.33M/s 00:00 [############################] 100%
 mingw-w64-x86_64-zlib-1...   147.8 KiB   213K/s 00:01 [############################] 100%
 mingw-w64-x86_64-binuti...    11.7 MiB  2.03M/s 00:06 [############################] 100%
 mingw-w64-x86_64-header...     4.9 MiB  2.68M/s 00:02 [############################] 100%
 mingw-w64-x86_64-crt-gi...     2.6 MiB  3.50M/s 00:01 [############################] 100%
 mingw-w64-x86_64-libwin...    34.5 KiB  11.2M/s 00:00 [############################] 100%
 mingw-w64-x86_64-winpth...    44.7 KiB  10.9M/s 00:00 [############################] 100%
 mingw-w64-x86_64-gmp-6....   448.7 KiB  51.0K/s 00:09 [############################] 100%
 mingw-w64-x86_64-mpfr-3...   250.2 KiB   989K/s 00:00 [############################] 100%
 mingw-w64-x86_64-mpc-1....    62.3 KiB  8.70M/s 00:00 [############################] 100%
 mingw-w64-x86_64-isl-0....   434.3 KiB  55.6K/s 00:08 [############################] 100%
 mingw-w64-x86_64-cloog-...    63.3 KiB  73.0K/s 00:01 [############################] 100%
 mingw-w64-x86_64-gcc-li...   437.3 KiB  1477K/s 00:00 [############################] 100%
 mingw-w64-x86_64-gcc-4....    22.3 MiB  4.65M/s 00:05 [############################] 100%
 mingw-w64-x86_64-expat-...   105.6 KiB  1531K/s 00:00 [############################] 100%
 mingw-w64-x86_64-gettex...     3.8 MiB  3.34M/s 00:01 [############################] 100%
 mingw-w64-x86_64-gdbm-1...   151.9 KiB  2.12M/s 00:00 [############################] 100%
 mingw-w64-x86_64-libffi...    31.8 KiB   514K/s 00:00 [############################] 100%
 mingw-w64-x86_64-libtre...    69.0 KiB  1078K/s 00:00 [############################] 100%
 mingw-w64-x86_64-libsys...     9.1 KiB   295K/s 00:00 [############################] 100%
 mingw-w64-x86_64-ncurse...  1646.1 KiB  3.88M/s 00:00 [############################] 100%
 mingw-w64-x86_64-openss...     3.3 MiB  4.33M/s 00:01 [############################] 100%
 mingw-w64-x86_64-termca...    12.4 KiB  4.03M/s 00:00 [############################] 100%
 mingw-w64-x86_64-readli...   235.9 KiB  78.6K/s 00:03 [############################] 100%
 mingw-w64-x86_64-tcl-8....     2.8 MiB  4.20M/s 00:01 [############################] 100%
 mingw-w64-x86_64-tk-8.6...  1870.5 KiB  3.47M/s 00:01 [############################] 100%
 mingw-w64-x86_64-python...    10.5 MiB  4.23M/s 00:02 [############################] 100%
 mingw-w64-x86_64-gdb-7....     2.7 MiB  5.07M/s 00:01 [############################] 100%
 mingw-w64-x86_64-libman...    16.6 KiB   517K/s 00:00 [############################] 100%
 mingw-w64-x86_64-make-4...   101.9 KiB  58.8K/s 00:02 [############################] 100%
 mingw-w64-x86_64-tools-...   232.3 KiB  1001K/s 00:00 [############################] 100%
 mingw-w64-x86_64-winsto...     4.9 KiB  0.00B/s 00:00 [############################] 100%
(33/33) キーリングのキーを確認                         [############################] 100%
(33/33) パッケージの整合性をチェック                   [############################] 100%
(33/33) パッケージファイルのロード                     [############################] 100%
(33/33) ファイルの衝突をチェック                       [############################] 100%
(33/33) 空き容量を確認                                 [############################] 100%
( 1/33) インストール mingw-w64-x86_64-libiconv         [############################] 100%
( 2/33) インストール mingw-w64-x86_64-bzip2            [############################] 100%
( 3/33) インストール mingw-w64-x86_64-zlib             [############################] 100%
( 4/33) インストール mingw-w64-x86_64-binutils         [############################] 100%
( 5/33) インストール mingw-w64-x86_64-headers-git      [############################] 100%
( 6/33) インストール mingw-w64-x86_64-crt-git          [############################] 100%
( 7/33) インストール mingw-w64-x86_64-libwinpthrea...  [############################] 100%
( 8/33) インストール mingw-w64-x86_64-winpthreads-git  [############################] 100%
( 9/33) インストール mingw-w64-x86_64-gmp              [############################] 100%
(10/33) インストール mingw-w64-x86_64-mpfr             [############################] 100%
(11/33) インストール mingw-w64-x86_64-mpc              [############################] 100%
(12/33) インストール mingw-w64-x86_64-isl              [############################] 100%
(13/33) インストール mingw-w64-x86_64-cloog            [############################] 100%
(14/33) インストール mingw-w64-x86_64-gcc-libs         [############################] 100%
(15/33) インストール mingw-w64-x86_64-gcc              [############################] 100%
(16/33) インストール mingw-w64-x86_64-expat            [############################] 100%
(17/33) インストール mingw-w64-x86_64-gettext          [############################] 100%
(18/33) インストール mingw-w64-x86_64-gdbm             [############################] 100%
(19/33) インストール mingw-w64-x86_64-libffi           [############################] 100%
(20/33) インストール mingw-w64-x86_64-libtre-git       [############################] 100%
(21/33) インストール mingw-w64-x86_64-libsystre        [############################] 100%
(22/33) インストール mingw-w64-x86_64-ncurses          [############################] 100%
(23/33) インストール mingw-w64-x86_64-openssl          [############################] 100%
(24/33) インストール mingw-w64-x86_64-termcap          [############################] 100%
(25/33) インストール mingw-w64-x86_64-readline         [############################] 100%
(26/33) インストール mingw-w64-x86_64-tcl              [############################] 100%
(27/33) インストール mingw-w64-x86_64-tk               [############################] 100%
(28/33) インストール mingw-w64-x86_64-python2          [############################] 100%
(29/33) インストール mingw-w64-x86_64-gdb              [############################] 100%
(30/33) インストール mingw-w64-x86_64-libmangle-git    [############################] 100%
(31/33) インストール mingw-w64-x86_64-make             [############################] 100%
(32/33) インストール mingw-w64-x86_64-tools-git        [############################] 100%
(33/33) インストール mingw-w64-x86_64-winstorecomp...  [############################] 100%
$ gcc -v
Using built-in specs.
COLLECT_GCC=C:\msys64\mingw64\bin\gcc.exe
COLLECT_LTO_WRAPPER=C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-4.9.2/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --with-gxx-include-dir=/mingw64/include/c++/4.9.2 --enable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,objc,obj-c++,fortran,ada --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-cloog-backend=isl --enable-version-specific-runtime-libs --disable-cloog-version-check --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-cloog=/mingw64 --with-pkgversion='Rev5, Built by MSYS2 project' --with-bugurl=http://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld
Thread model: posix
gcc version 4.9.2 (Rev5, Built by MSYS2 project)

とういうわけで,後半へ続く。

【おまけ】 Proxy サーバ越しのアクセス

Proxy サーバ越しに curl を使う場合は ~/.curlrc に以下の記述を追加する。

.curlrc
proxy-user = "username:password"
proxy = "http://proxy.example.com:8080"

pacman を Proxy サーバ越しに使う場合は、上述の通りに curl の設定をしたうえで /etc/pacman.conf ファイルの以下の記述を探し、コメントを解除する。

pacman.conf
#XferCommand = /usr/bin/curl -C - -f %u > %o

gnupg で鍵サーバにアクセスする場合も、 Proxy サーバ越しにアクセスするのであれば、 ~/.gnupg/gpg.conf に以下のオプションを追記する。

gpg.conf
keyserver-options http-proxy=http://username:password@proxy.example.com:8080/

実は /etc/pacman.d/gnupg ディレクトリにも gpg.conf ファイルがあって pacman-key コマンドはこちらを見てるっぽい。 /etc/pacman.d/gnupg ディレクトリにある鍵束を gnupg から直接見る場合には以下のコマンドを叩く。

$ gpg --homedir /etc/pacman.d/gnupg --list-keys

ブックマーク

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.