WindowsでLinux開発環境を構築!MSYS2とpacmanで始めるコマンドライン生活
Windows上でLinuxのコマンドやツールを使いたいと思ったことはありませんか? 特定のライブラリのビルドや、UNIXライクな開発環境が求められる場面は多くあります。しかし、WSL (Windows Subsystem for Linux) を使うほどではない、あるいはもっとネイティブに近い環境で開発を進めたい、そんなニーズに応える強力なツールがMSYS2です。
MSYS2は、Windows上でLinux開発ツールを動かすための環境です。Arch Linuxをベースとし、強力なパッケージマネージャー「pacman」を採用しています。この記事では、MSYS2を導入し、pacmanを使ってWindows上に実践的な開発環境を構築する手順を具体的に紹介します。
なぜWindowsでLinux環境が必要なのか?
Windowsネイティブ環境では、特定の開発作業が難しい場合があります。例えば、C/C++のクロスプラットフォーム開発や、UNIX系ツールチェーンを前提としたプロジェクトです。Pythonの特定のライブラリやffmpegのような複雑なソフトウェアをソースからビルドする際も、Linux的な環境が必要となるケースがあります。
WindowsにはWinget、Scoop、Chocolateyといった優れたパッケージマネージャーが存在します。しかし、これらは主にWindowsネイティブアプリケーションやツールを管理するものです。MSYS2は、UNIX系ツールやコンパイラ環境の構築に特化しています。
RustやPythonのC拡張モジュールの開発、または特定のビルドシステムが必要な場面で、MSYS2は真価を発揮します。ネイティブWindowsバイナリを生成するためのMinGW-w64環境も統合されており、Windows特有の開発にも対応できます。
MSYS2とは何か?その特徴を理解する
MSYS2は、Windows上でUNIXライクなシェル環境と開発ツールを提供するプロジェクトです。GitHubのリポジトリ msys2/msys2 は4.5k以上のスターを獲得しており、多くの開発者に利用されています。公式サイトは https://www.msys2.org です。
この環境の最大の特長は、強力なパッケージマネージャー「pacman」を採用している点です。pacmanはArch Linuxで使われるもので、依存関係の解決を含め、ソフトウェアのインストールや管理を効率的に行います。
MSYS2には、主に以下の3つの異なる環境が含まれています。
- MSYS2環境: POSIX互換のシェル環境を提供します。Cygwinと似ていますが、より現代的な設計です。
- MinGW-w64環境 (UCRT64/MINGW64): ネイティブWindowsバイナリをコンパイルするためのツールチェーンです。UCRT64はUniversal C Runtimeをベースに、MINGW64は旧来のC Runtimeをベースにしています。
- Clang64環境: Clang/LLVMベースのコンパイラツールチェーンを提供します。
これらの環境を使い分けることで、Windowsアプリケーションの開発からLinuxライクなコマンドラインツール利用まで、幅広いニーズに対応できます。
MSYS2の導入とpacmanの基本操作
それでは、実際にMSYS2をインストールし、pacmanの基本的な使い方を見ていきましょう。
MSYS2のインストール手順
インストーラーのダウンロード: まず、MSYS2の公式サイト (https://www.msys2.org) にアクセスします。サイト上部にあるダウンロードボタンからインストーラーをダウンロードしてください。通常は
msys2-x86_64-latest.exeのようなファイル名です。インストールの実行: ダウンロードしたインストーラーを実行します。特別な理由がない限り、すべての設定をデフォルトのまま進めてください。標準では
C:\msys64にインストールされます。MSYS2 UCRT64 シェルの起動: インストールが完了すると、スタートメニューに「MSYS2 UCRT64」というショートカットが追加されます。これをクリックしてシェルを起動します。このシェルが、MinGW-w64 UCRT64環境で開発を行うためのメインのインターフェースとなります。
pacmanの初期設定と主要コマンド
MSYS2シェルを開いたら、まずはパッケージデータベースを最新の状態に更新し、システムをアップグレードします。
# パッケージデータベースを更新
pacman -Syu
このコマンドを実行すると、一度シェルを閉じるよう促される場合があります。その際は指示に従い、シェルを閉じてから再度「MSYS2 UCRT64」を起動してください。そして、もう一度 pacman -Syu を実行します。これは、まずpacman自体を最新の状態にし、その後システム全体のパッケージをアップグレードするためです。
# シェルを再起動後、再度システム全体をアップグレード
pacman -Syu
これでMSYS2環境が最新の状態になりました。次に、pacmanの主要なコマンドを確認しましょう。
パッケージ検索:
pacman -Ss <name>コマンドで、特定のパッケージを検索できます。例えば、gitを検索する場合は以下の通りです。pacman -Ss gitパッケージインストール:
pacman -S <name>コマンドで、パッケージをインストールします。pacman -S git複数同時にインストールすることも可能です。
pacman -S make cmakeパッケージ削除:
pacman -R <name>コマンドで、パッケージを削除します。依存関係にあるパッケージもまとめて削除したい場合は-Rsオプションを使います。pacman -R gitインストール済みパッケージ一覧:
pacman -Qコマンドで、現在システムにインストールされているすべてのパッケージを表示します。pacman -Qパッケージ情報:
pacman -Si <name>コマンドで、特定のパッケージの詳細情報を表示します。pacman -Si git
これらのコマンドを使いこなせば、必要なツールを簡単に管理できます。
開発ツールをインストールしてみよう
MSYS2とpacmanの基本を理解したところで、実際の開発に役立つツールをインストールしてみましょう。ここでは、C/C++、Python、Git、Rustなど、主要な開発ツールを導入します。
MinGW-w64環境でネイティブWindowsバイナリをコンパイルする場合、パッケージ名に mingw-w64-ucrt-x86_64- というプレフィックスが付きます。これは、Universal C Runtimeをベースとした64ビット版のMinGW-w64ツールであることを示します。
C/C++ コンパイラ (GCC): CやC++のコードをコンパイルするために必要です。
pacman -S mingw-w64-ucrt-x86_64-gccインストール後、以下のコマンドでバージョンを確認できます。
gcc --version簡単なCプログラムを作成して動作確認も可能です。
// hello.c #include <stdio.h> int main() { printf("Hello from MSYS2!\n"); return 0; }コンパイルと実行:
gcc hello.c -o hello.exe ./hello.exeMake: ビルドプロセスを自動化するためのツールです。
pacman -S mingw-w64-ucrt-x86_64-makeCMake: Makeファイルを生成するためのクロスプラットフォームなビルドシステムジェネレータです。
pacman -S mingw-w64-ucrt-x86_64-cmakePython: スクリプト言語として広く使われています。
pacman -S mingw-w64-ucrt-x86_64-pythonインストール後、バージョンを確認できます。
python --versionGit: バージョン管理システムです。プロジェクトの管理には欠かせません。
pacman -S gitバージョン確認:
git --versionRust のインストール前提ツール: Rust言語の開発環境を整える際にもMSYS2は役立ちます。Rustコンパイラ自体は
rustupで導入するのが一般的ですが、そのビルドに必要なツールチェーンをMSYS2で用意できます。pacman -S mingw-w64-ucrt-x86_64-rustこのパッケージはRustコンパイラと関連ツールを提供します。
rustc --versionで確認できます。
これらのツールをインストールすることで、あなたのWindows環境は強力なLinuxライクな開発基盤を持つことになります。様々なオープンソースプロジェクトのビルドや、UNIXコマンドを使った作業が、Windows上でもスムーズに行えるようになるでしょう。
MSYS2とpacmanを活用すれば、Windowsの利便性を保ちながら、Linux的な開発環境の恩恵を受けられます。特定のプロジェクト要件や、WSLとは異なるアプローチを求める場合に、MSYS2は非常に有効な選択肢となります。
これであなたのWindows環境はLinux的な開発基盤を手に入れました。次は、あなたが作りたいプロジェクトに必要なライブラリをpacmanで探し、インストールしてみましょう。
まとめ・次のステップ
この記事が役に立ったら、ブログのメールマガジンへ登録してください。 AI活用・個人開発・副業に関する最新情報を週1回お届けします。
このブログでは、会社員をしながら副業でSaaSを開発する過程をリアルに発信しています。