AI 記事

WindowsでLinux開発環境を構築!MSYS2とpacmanで始めるコマンドライン生活

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のインストール手順

  1. インストーラーのダウンロード: まず、MSYS2の公式サイト (https://www.msys2.org) にアクセスします。サイト上部にあるダウンロードボタンからインストーラーをダウンロードしてください。通常は msys2-x86_64-latest.exe のようなファイル名です。

  2. インストールの実行: ダウンロードしたインストーラーを実行します。特別な理由がない限り、すべての設定をデフォルトのまま進めてください。標準では C:\msys64 にインストールされます。

  3. 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.exe
    
  • Make: ビルドプロセスを自動化するためのツールです。

    pacman -S mingw-w64-ucrt-x86_64-make
    
  • CMake: Makeファイルを生成するためのクロスプラットフォームなビルドシステムジェネレータです。

    pacman -S mingw-w64-ucrt-x86_64-cmake
    
  • Python: スクリプト言語として広く使われています。

    pacman -S mingw-w64-ucrt-x86_64-python
    

    インストール後、バージョンを確認できます。

    python --version
    
  • Git: バージョン管理システムです。プロジェクトの管理には欠かせません。

    pacman -S git
    

    バージョン確認:

    git --version
    
  • Rust のインストール前提ツール: 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回お届けします。

👉 無料メルマガに登録する(Waitlist)

このブログでは、会社員をしながら副業でSaaSを開発する過程をリアルに発信しています。

広告

-AI, 記事