1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Windows】MSYS2とは何か?WSL2時代の活用法と導入・設定まとめ

1
Posted at

はじめに

Windowsで開発環境を整える際、「WSL2 (Windows Subsystem for Linux)」が標準になりつつあります。しかし、オープンソースのツールを調べていると、ダウンロードページで**「MSYS2」**という文字を見かけることはありませんか?

「WSLがあるのに、なぜMSYS2が必要なの?」
「Git Bashと何が違うの?」

今回は、そんな疑問を持つ方向けに、MSYS2の概要、導入方法、そして現代的な使いどころについて解説します。

MSYS2 とは?

MSYS2(エムシスツー)は、Windows上で動く**「UNIXライクな開発環境」を提供するソフトウェアディストリビューションです。
簡単に言うと、
「Windowsの中で、Linuxと同じようなコマンド(bash, ls, grepなど)やパッケージ管理システムを使えるようにするツール群」**です。

最大の特徴:Pacman

Arch Linuxで採用されているパッケージマネージャー pacman が使えます。これにより、コマンド一発でコンパイラ(gcc)やツール(ffmpeg, vim, gitなど)をインストール・管理できます。

WSL (Windows Subsystem for Linux) との違い

ここが最も重要です。

特徴 MSYS2 WSL2
仕組み Windowsネイティブなバイナリとして動作 軽量VM上でLinuxカーネルそのものを動かす
ファイルシステム Windowsのファイルを直接操作するのが得意 Linux内のファイル操作は爆速だが、Windows側へのアクセスは少し遅い
主な用途 Windows用のアプリをビルドする、UNIXツールをWindowsの一部として使う Linuxサーバー環境の再現、Dockerコンテナの実行

結論:

  • Linux環境そのものが欲しい(サーバーサイド開発など) → WSL2
  • Windows上で動くツールを作りたい、WindowsのファイルをUNIXコマンドで処理したい → MSYS2

インストール手順

1. インストーラーのダウンロード

公式サイト(msys2.org)にアクセスし、トップページのインストーラー(.exe)をダウンロードして実行します。
基本的には「次へ」を押していくだけでデフォルトの場所(C:\msys64)にインストールされます。

2. パッケージの更新

インストールが完了するとターミナルが開きます。まずはパッケージデータベースを最新にします。以下のコマンドを実行してください。

pacman -Syu

※ 更新中に「ターミナルを閉じてください」と言われたら、一度閉じてスタートメニューから再度「MSYS2 MSYS」を開き、もう一度 pacman -Syu を実行して完了させます。


使用例:何ができるのか?

ケース1:パッケージのインストール (pacman)

例えば、高機能なダウンロードツール wget や、バージョン管理の git を入れたい場合。

# インストール (-S)
pacman -S wget git

# 検索 (-Ss)
pacman -Ss python

これだけでパスが通った状態で使えるようになります。ChocolateyやScoopに近い感覚ですが、よりLinux寄りなツールが豊富です。

ケース2:gccでC言語のコンパイル(Windowsネイティブアプリ作成)

ここがMSYS2の真骨頂です。WSLのgccでコンパイルすると「Linuxの実行ファイル(ELF)」ができますが、MSYS2のgccでコンパイルすると「Windowsの実行ファイル(.exe)」が作れます。

まず、コンパイラを入れます(UCRT64環境推奨)。

pacman -S mingw-w64-ucrt-x86_64-gcc

hello.c を作成してコンパイル:

gcc hello.c -o hello.exe
./hello.exe
# -> Hello World!

この hello.exe は、MSYS2が入っていない他のWindows PCに持っていっても(依存DLLさえあれば)そのまま動きます。

ケース3:Windows Terminal への統合

MSYS2標準のターミナル(Mintty)も良いですが、普段使い慣れた Windows Terminal のタブの一つとしてMSYS2を追加すると非常に便利です。

Windows Terminalの「設定」→「JSONファイルを開く」で、profileslist に以下を追加します。

{
    "guid": "{12345678-1234-1234-1234-1234567890ab}",
    "hidden": false,
    "name": "MSYS2 / UCRT64",
    "commandline": "C:\\msys64\\msys2_shell.cmd -defterm -here -no-start -ucrt64",
    "icon": "C:\\msys64\\ucrt64.ico",
    "startingDirectory": "%USERPROFILE%"
}

guid は適当なユニークな値を生成して入れてください。

これで、Windows TerminalからサッとMSYS2環境を呼び出せるようになります。


まとめ:開発者の道具箱に入れておこう

最近はWeb開発=WSL2という流れが強いですが、**「Windowsネイティブなバイナリが必要な時」「FFmpegなどのツールを自分でビルドして使いたい時」**に、MSYS2は最強の選択肢になります。

特に mpv のような動画プレイヤーや、画像処理ライブラリなどを「最新のソースコードからWindows用にビルドしたい」というマニアックな要望に応えられるのは、現状MSYS2一択と言っても過言ではありません。

Scoop等で物足りなくなった方は、ぜひ一度触ってみてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?