Windows 開発・運用環境 総合リファレンス

【概要】Windows上での開発・運用環境の構築と保守に必要な情報をまとめたリファレンスである。プログラミング言語(Python・C/C++・Java・Perl・Rust・Go など)、ビルドツール(Visual Studio Build Tools・CMake・LLVM)、データベース(MySQL・Firebird・SQL Server)、WSL2によるLinux環境、Windows Developer Configurations による自動環境構築、VirtualBoxとVagrantによる仮想化、MSYS2・MinGW・Cygwinによるツールチェーンを扱う。ソフトウェアのインストールにはwinget(Windows標準パッケージマネージャ)を主に使用し、一部Chocolateyを使用する。システム保守では、Windows Update・DISM・SFCによる修復・Sysinternalsツールを取り上げる。

【目次】

【サイト内の関連ページ】

Windows の基本操作・コマンド操作・設定と、アプリ・開発環境・ローカル AI の導入

0. 基本操作スキルと概念

本リファレンスを活用するために必要な基本的な操作と概念をまとめる。本リファレンス全体を通じて、コマンドプロンプトを開く操作管理者として実行する操作が頻繁に登場する。

0.1 コマンドプロンプト操作

コマンドプロンプトの開き方

  1. Windows キーを押す → 検索窓に cmd と入力 → 「コマンドプロンプト」をクリック
  2. または Windows + Rcmd と入力 → Enter

起動すると C:\Users\ユーザー名> のようなプロンプトが表示される。

コマンドプロンプトを管理者として開く方法

  1. Windows キーを押す → 検索窓に cmd と入力
  2. 「コマンドプロンプト」を右クリック「管理者として実行」
  3. UAC(ユーザーアカウント制御)の確認ダイアログで 「はい」 をクリック

管理者として起動したコマンドプロンプトのタイトルバーには 「管理者: コマンドプロンプト」 と表示される。

通常権限と管理者権限の違い

本リファレンスでは winget install --scope machine を使うインストールやシステム環境変数の変更に管理者権限が必要である。

その他のコマンドプロンプト操作

0.2 環境変数・PATH

環境変数とは、OSが管理する名前と値のペアである。プログラムの動作に影響する設定値を保存する仕組みである。例: JAVA_HOME=C:\Program Files\Java\jdk-21

PATH 環境変数とは、コマンドを実行するとき、OSが実行ファイルを探すフォルダの一覧である。セミコロン(;)で区切って複数のフォルダを指定できる。例: PATH=C:\Windows\system32;C:\Program Files\Python312

「PATH が通っている」とはどういう意味か

あるコマンドの実行ファイルが、PATH に登録されたフォルダのいずれかに存在することである。PATH が通っていれば、フォルダ名を省略してコマンド名だけで実行できる。

確認方法: where コマンド名 を実行する。パスが表示されれば通っている。「ファイルが見つかりません。」と表示されれば通っていない。

PATH が通っていない場合に出るエラーの例:

'python' は、内部コマンドまたは外部コマンドとして認識されていません。

システム環境変数とユーザー環境変数の違い

環境変数変更後の注意: すでに開いているコマンドプロンプトには変更が反映されない。新しいコマンドプロンプトを開き直す必要がある。

よく使われる特殊変数:

0.3 winget の基本

wingetは、Microsoftが提供するWindows公式のパッケージマネージャである。コマンド一つでソフトウェアのインストール・更新・削除ができる。Windows 11 には標準搭載されている。

主要コマンド:

winget install パッケージID     REM インストール
winget upgrade パッケージID     REM 更新
winget uninstall パッケージID   REM アンインストール
winget search キーワード        REM パッケージを検索
winget list                     REM インストール済みパッケージの一覧

--scope machine--scope user の違い

--accept-source-agreements--accept-package-agreements: インストール時の確認プロンプトを自動で承認するオプション。スクリプトでの自動インストール時に使う。

--override パラメータ: wingetがインストーラーに渡す引数を上書きするオプション。インストーラー固有のオプション(/quiet など)を指定するときに使う。

インストール確認: インストール後に where コマンド名 でパスを確認するか、winget list パッケージID でインストール状態を確認する(PATHが通っているとはどういう意味かも参照)。

0.4 pip の基本

pipは、Pythonの標準パッケージ管理ツールである。PyPI(Python Package Index)からライブラリをインストールできる。

主要コマンド:

python -m pip install パッケージ名    REM インストール
python -m pip uninstall パッケージ名  REM アンインストール
python -m pip list                     REM インストール済みパッケージの一覧
python -m pip install -U パッケージ名 REM 最新版に更新(upgrade)

-U オプション: 最新版に更新する(upgrade)。すでにインストール済みでも最新版を再インストールする。

表示が止まって見える場合: パッケージのダウンロードやインストール中は一時的に画面の更新が止まる。プロンプトが戻るまで待つCtrl+C で中断可能)。

インストール完了の確認: プロンプトが戻り、Successfully installed ... と表示されれば成功。エラーメッセージが出ていないことも確認する。

0.5 ファイルシステム・パス

Windowsのパスの書き方: ドライブレター + コロン + バックスラッシュ + フォルダ名/ファイル名。フォルダの区切り文字はバックスラッシュ(\)である。例: C:\Program Files\Python312\python.exe

絶対パスと相対パス

拡張子: ファイル名末尾のピリオド以降の部分。主な種類: .exe(実行ファイル)、.bat(バッチスクリプト)、.py(Pythonスクリプト)、.java(Javaソースコード)、.c.cpp(C/C++ソースコード)

拡張子の表示設定: エクスプローラー上部の「表示」→「表示」→「ファイル名拡張子」にチェックを入れる。

ファイル名の大文字・小文字: Windowsのファイルシステム(NTFS)はLinuxと異なり大文字・小文字を区別しない。MyFile.txtmyfile.txt は同じファイルとして扱われる。

0.6 インストール全般の概念

ソフトウェアのインストールとは、実行ファイル・ライブラリ・設定ファイルなどを適切なフォルダにコピーし、必要な設定(レジストリ、環境変数など)を行うことである。

インストール後のコマンドプロンプト再起動: インストール時にPATHが変更された場合、すでに開いているコマンドプロンプトには反映されない。インストール後は新しいコマンドプロンプトを開く。

--scope machine インストール後に全ユーザーが使える理由: システム環境変数のPATHに実行ファイルのフォルダが追加されるため、すべてのユーザーのコマンドプロンプトから使えるようになる。

インストールの確認方法

サイレントインストール: /quiet/silent オプションをインストーラーに渡すことで、GUI画面を表示せずにインストールされる。wingetでは --override で指定する。

GUIインストーラーとコマンドラインインストールの違い: GUIインストーラーは画面の指示に従ってクリックしてインストールする。コマンドラインはwingetなどのコマンドを入力してインストールし、自動化・一括処理が可能である。

0.7 ソースコード・コンパイルの基本概念

ソースコード: 人間が書くプログラムのテキストファイルである(例: .c.cpp.java.py ファイル)。

コンパイル: ソースコードをCPUが実行できる機械語(バイナリ)に変換することである。CやC++は実行前にコンパイルが必要。Pythonはインタープリタが逐次実行するためコンパイルは不要。

オブジェクトファイルと実行ファイル

リンク(Link): 複数のオブジェクトファイルとライブラリを結合して実行ファイルを生成する処理である。リンカ(link.exelld-link など)が行う。

0.8 テキストエディタ・ファイル操作

文字コード(UTF-8): テキストファイルの文字の表現方式である。本リファレンスのコード例ではUTF-8を前提にしている場合が多い。

保存場所とカレントディレクトリ: コマンドプロンプトでスクリプトを実行するには、カレントディレクトリをファイルの保存場所に合わせるか、ファイルのフルパスを指定する。cd フォルダのパス で移動する。

スクリプトファイルを作成して実行するまでの流れ

  1. テキストエディタで内容を書き、正しい拡張子を付けて保存(例: hello.py
  2. コマンドプロンプトでファイルのあるフォルダへ移動(cd フォルダのパス
  3. インタープリタで実行(例: python hello.pyperl hello.pl

0.9 Windowsのシステム操作

「ファイル名を指定して実行」: Windows + R でダイアログを開く。プログラム名やコマンドを直接入力して実行できる(例: cmdpowershellnotepad)。

スタートメニューの検索窓: Windowsキーを押すと表示される。アプリ名・設定名で検索して直接起動できる。

タスクマネージャー: Ctrl + Shift + Esc(または Ctrl + Alt + Delete → 「タスクマネージャー」)で開く。実行中のプロセスとCPU・メモリ使用量を確認でき、応答しないプロセスを強制終了できる。

Windows Update の確認・実行: スタートメニューの検索窓に「windows update」と入力 → 「Windows Update の設定」を開く → 「更新プログラムのチェック」をクリック(詳細は5.1 Windows Update とバージョン確認を参照)。

1. Windows基本設定と操作

1.1 Windows のクリーンインストール

「Windows 11クリーンインストールガイド」で説明

【概要】 Windows 11のインストール作業では、Media Creation ToolでISOファイルをダウンロードし、USBメディアを直接作成するか、ダウンロードしたISOファイルを使用してRufusで詳細な設定が可能なUSBメディアを作成する。インストールでは、TPM 2.0などのシステム要件を確認後、アップグレードまたはクリーンインストールを実行する。BIOSメニューを表示するには、コマンド「shutdown /r /fw /t 0」を使用する。

【関連する外部ページ】

1.2 Windows 11 の基本設定

「Windows 11の基本設定」で説明

【概要】Windows 11の基本設定について解説する。不要なプリインストールアプリの削除、ディスクのクリーンアップ、空き領域のゼロフィル(セキュリティ向上のためにデータを消去する手法)、長いパス名制限(従来の260文字制限)の緩和、システムサービスの最適化などの設定をコマンドラインから実行する方法に加え、BIOSへのアクセス、バックアップと復元、トラブルシューティングについても取り上げる。

1.3 Windowsシステムの基本操作ガイド

「Windowsシステムの基本操作ガイド」で説明

【概要】Windows 11では、ウィンドウのサイズ変更、移動、最大化・最小化などのウィンドウ操作が基本となる。このほか、コマンドプロンプト(cmd)によるコマンドライン操作、テキストエディタ(メモ帳)での文書編集、ファイルのコピー・切り取り・貼り付け・名前変更・削除といったファイル操作など、多くの機能を利用できる。

2. Windows のアプリ、データファイル

ソフトウェアのインストール方法として、wingetによる自動一括インストールと、ソフトウェアごとの手動インストールの二通りがある。目的に応じて使い分けること。

2.3 テキストエディタ (Visual Studio Code, Notepad++, Emacs)

テキストエディタは、テキストファイルを編集する機能を持つソフトウェアである。プログラミングや設定ファイルの編集に不可欠である。テキストエディタ・ファイル操作の基本については0.8 テキストエディタ・ファイル操作を参照すること。

Windowsには「メモ帳 (notepad)」などのテキストエディタが標準で搭載されている。より高機能なエディタとして、Visual Studio CodeNotepad++EmacsなどがWindowsで利用可能である。これらは、シンタックスハイライト、コード補完、デバッグ支援などの機能を持ち、プログラミングや文書作成において利用されている。

Visual Studio Code (VS Code)

Visual Studio Codeは、Microsoftが開発する高機能かつ拡張性の高い、無料のソースコードエディタである。多くのプログラミング言語に対応し、デバッグ機能、Git連携、豊富な拡張機能によるカスタマイズ性が特徴である。Web開発から機械学習まで幅広い用途で利用されている。インストール手順と拡張機能の設定については「Windowsのさまざまなアプリケーション」の「3. 開発環境」セクションで説明している。

【関連する外部ページ】

【サイト内の関連ページ】

Notepad++

Notepad++は、Windows標準のメモ帳より高機能な、無料のテキストエディタである。多数のプログラミング言語に対応したシンタックスハイライト、自動補完、プラグインによる機能拡張、文字コード変換、正規表現検索・置換などが特徴である。

Notepad++ のインストール(Windows上)
  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する (wingetを使用):
    winget install --scope machine Notepad++.Notepad++
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine'); if ($oldpath -notlike '*C:\Program Files\Notepad++*') { $newpath = $oldpath + ';C:\Program Files\Notepad++'; [System.Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine') }"

    (2行目はNotepad++のフォルダをPATHに追加する。環境変数・PATHの基本も参照)

【関連する外部ページ】

【サイト内の関連ページ】

Notepad++の設定

Emacs エディタ

Emacsは、Lisp言語による拡張性を持つテキストエディタであり、統合開発環境としても利用される。キーボード中心の操作が特徴で、テキスト編集からシェル実行まで幅広い機能を持つ。

主要な操作例:

Emacs のインストール(Windows上)

コマンドプロンプト管理者権限で起動し、以下を実行する。

REM Emacs をシステム領域にインストール
winget install --scope machine GNU.Emacs --force
REM Emacs のパスを自動検出して PATH に追加
powershell -NoProfile -Command "$d=Get-ChildItem 'C:\Program Files\Emacs' -Directory|Where-Object{$_.Name -match '^emacs-\d'}|Sort-Object{[version]($_.Name -replace '^emacs-','')} -Descending|Select-Object -First 1; if($d){$p=$d.FullName+'\bin'; $c=[Environment]::GetEnvironmentVariable('Path','Machine'); if((Test-Path $p) -and (';'+$c+';' -notlike \"*;$p;*\")){[Environment]::SetEnvironmentVariable('Path',\"$c;$p\",'Machine')}}"

【関連する外部ページ】

【サイト内の関連ページ】

2.4 データファイル (CSV)

CSV (Comma Separated Values)

CSVは、データをカンマ(,)で区切って格納する、プレーンテキストのファイル形式である。表形式のデータを単純な形式で保存・交換するためによく用いられる。

Microsoft Excel形式のCSVファイルの例と特徴:

りんご,150,4,200,"12月30日に購入した、美味しい品種"
みかん,30,2,60,"""甘夏""は売り切れ"

2.5 その他便利ツール

フリーソフトウェアは無償で利用できるが、ライセンス条件はソフトウェアごとに異なる。利用前にライセンスを確認し、遵守すること。本節で使用するすべてのインストールコマンドは管理者権限コマンドプロンプトで実行する。

【環境構築・仮想化】

【プログラミング・統計・データ処理】

【開発エディタ・ツール】

【エンジニアリング・CAD・GIS・文書作成】

【CG・映像・音声処理】

【テキスト・翻訳・閲覧】

【ファイル管理・検索・ディスク管理】

【画像・図解】

【システム・ネットワーク・その他】

3. プログラミング環境構築

3.1 Python とツール (pip, uv, venv, Jupyter など)

ここでは主にPython 3.12を例に説明する。プロジェクトに応じて適切なバージョンを選択すること。最新の安定版についてはPython公式サイトを確認すること。

Python

Pythonは、読みやすく書きやすい文法、豊富な標準ライブラリ、活発なコミュニティを持つプログラミング言語である。Web開発、データサイエンス、機械学習、自動化など幅広い分野で利用されている。

Python 3.12 のインストール手順(wingetを使用)は「Windowsのさまざまなアプリケーション」の「3. 開発環境」セクションで説明している。wingetを使用しない方法は別ページ »で説明している。

インストールの確認

コマンドプロンプトで以下を実行する。

python --version

バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない(PATHが通っているとはどういう意味かを参照)。

【サイト内の関連ページ】

pip: Python パッケージ管理

pipは、Pythonの標準的なパッケージ管理システムである。PyPI (Python Package Index) などからライブラリやツールをインストール、更新、削除できる。pipの基本的な使い方については0.4 pip の基本を参照すること。

pipの更新と主要な開発ツールのインストール例:

  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する:
    python -m pip install -U pip setuptools
    python -m pip install requests notebook jupyterlab jupyter jupyter-console jupytext PyQt5 nteract_on_jupyter spyder
    pipインストール例

pipの詳細: 別ページ »

uv: 高速Pythonパッケージ・プロジェクトマネージャ

uvは、Astral社が開発するRust製の高速Pythonパッケージ・プロジェクトマネージャである。pip・pip-tools・virtualenv・pyenv・Poetry をすべて置き換える単一ツールとして設計されており、キャッシュを活用した並列処理により pip の 10〜100倍の速度でパッケージをインストールできる。Microsoft の Windows Developer Configurations(3.6節参照)にも標準で含まれている(Python 3.14 + uv)。

uv のインストール(Windows上)

コマンドプロンプト管理者権限で起動し、以下を実行する。

winget install --scope machine --id astral-sh.uv

インストール後、新しいコマンドプロンプトを開いて uv --version でバージョンを確認する。

主要コマンド:

uv pip install パッケージ名    REM pip の代替(高速)
uv venv                       REM 仮想環境の作成
uv run script.py              REM スクリプトの実行(依存関係を自動解決)
uv python install 3.12        REM Pythonバージョンの管理
uv init プロジェクト名        REM 新規プロジェクトの作成
uv add パッケージ名           REM プロジェクトへの依存パッケージ追加

【関連する外部ページ】 https://docs.astral.sh/uv/

venv: Python 仮想環境

venvは、Pythonプロジェクトごとに独立した実行環境(仮想環境)を作成するための標準モジュールである。プロジェクトごとに異なるバージョンのパッケージを使用でき、依存関係の衝突を防ぐのに役立つ。uvを使う場合は uv venv で同等の環境を高速に作成できる。

venvの詳細: 別ページ »

Python デバッガ

Pythonプログラムのデバッグには以下のツールを用途に応じて選択する。

Visual Studio Code でのグラフィカルなデバッグ方法についてはVisual Studio CodeでPythonプログラミングを参照すること。

Python 開発ツール

その他のPython関連情報

3.2 C/C++ とツール (Visual Studio, Build Tools, CMake など)

C/C++のコンパイルに関する基本概念は0.7 ソースコード・コンパイルの基本概念を参照すること。

Build Tools for Visual Studio

Build Tools for Visual Studio は,Visual Studio の IDE を含まない C/C++ コンパイラ,ライブラリ,ビルドツール等のコマンドライン向け開発ツールセットである。

Visual Studio

Visual Studio は統合開発環境であり,Build Tools for Visual Studio と連携して使用する。

Build Tools for Visual Studio 2022 のインストール(Windows 上)

以下のコマンドを管理者権限コマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。

REM VC++ ランタイム
winget install --scope machine --id Microsoft.VCRedist.2015+.x64 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/quiet /norestart"

REM Build Tools + Desktop development with C++(VCTools)+ 追加コンポーネント(一括)
winget install --id Microsoft.VisualStudio.2022.BuildTools --accept-source-agreements --accept-package-agreements ^
    --override "--passive --wait --norestart --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.ComponentGroup.ClangCL --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.Windows11SDK.26100"

--add で追加されるコンポーネント

インストール完了の確認

winget list Microsoft.VisualStudio.2022.BuildTools

Visual Studio 2026 での同等の手順は「Windowsのさまざまなアプリケーション」の「3. 開発環境」セクションを参照すること。

Visual Studio Community 2022 の追加インストール(Windows 上)

Build Tools では対応できないケース(GUI でのコード編集・デバッグ・プロファイリング、C++/CLI による .NET との相互運用開発、NuGet パッケージマネージャーの GUI 使用)がある場合は Build Tools の環境に Visual Studio Community 2022 を追加インストールできる。

以下のコマンドの実行前に、Build Tools for Visual Studio 2022 のインストールを終えておくこと。

winget install --scope machine --accept-source-agreements --accept-package-agreements Microsoft.VisualStudio.2022.Community --override "--quiet --add Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core Microsoft.VisualStudio.Component.VC.CLI.Support Microsoft.VisualStudio.Component.CoreEditor Microsoft.VisualStudio.Component.NuGet Microsoft.VisualStudio.Component.Roslyn.Compiler Microsoft.VisualStudio.Component.TextTemplating Microsoft.VisualStudio.Component.Windows11SDK.26100 Microsoft.VisualStudio.Component.VC.Tools.x86.x64 Microsoft.VisualStudio.Component.VC.ATL Microsoft.VisualStudio.Component.VC.ATLMFC Microsoft.VisualStudio.Component.VC.Llvm.Clang Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset Microsoft.VisualStudio.Component.VC.CMake.Project Microsoft.VisualStudio.Component.VC.ASAN Microsoft.VisualStudio.Component.Vcpkg"

Visual Studio Community は無償だが、企業利用にはライセンス条件(個人開発者、オープンソース開発、学術研究、小規模組織に限定)があり、条件を満たさない場合は Professional 以上のエディションが必要となる。

インストール完了の確認

winget list Microsoft.VisualStudio.2022.Community

Build Tools for Visual Studio 2026 のインストール(Windows 上)

Visual Studio 2026 での Build Tools および Visual Studio Community のインストール手順は「Windowsのさまざまなアプリケーション」の「3. 開発環境」セクションで説明している。

Visual Studio の Native Tools コマンドプロンプト

Visual Studio の C/C++ コンパイラやビルドツールをコマンドラインから利用するには,Native Tools コマンドプロンプトを使用する。このコマンドプロンプトは,コンパイラやリンカの実行に必要な環境変数(PATH,INCLUDE,LIB など)が設定された状態で起動する。

起動方法:Windowsキーまたはスタートメニューで「Native Tools」と入力し,表示される「x64 Native Tools Command Prompt for VS 2022」等を選択する。64 ビット環境では「x64 Native Tools」を,32 ビットビルドが必要な場合は「x86 Native Tools」を選択する。

起動後、where cl を実行するとコンパイラ(cl.exe)のパスが表示される。

Native Tools Command Prompt

【vcvarsall.bat による環境設定】

通常のコマンドプロンプトでVisual Studioのビルド環境を利用したい場合は、vcvarsall.batを実行して環境変数を設定できる。

rem 64ビット開発環境用
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64

rem 32ビット開発環境用
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86

(vcvarsall.batのパスはVisual Studioのバージョンやエディションによって異なる場合がある)

Microsoft Visual Studio のバージョン番号

Visual Studioの内部バージョン番号は、ツールセットの選択などで参照されることがある。

Visual Studio 2013: vc12
Visual Studio 2015: vc14
Visual Studio 2017: vc15
Visual Studio 2019: vc16
Visual Studio 2022: vc17

Windows での C/C++ コンパイラ選択肢

Windowsにおける主要なC/C++コンパイラ環境:

MinGW/MSYS2 環境でのコンパイル例 (GCC)

hello.c をコンパイルし、実行ファイル hello.exe を生成する例:

# 通常のコンパイル
gcc hello.c -o hello.exe

# デバッグ情報付きでコンパイル
gcc -g hello.c -o hello.exe

# 依存DLLの確認 (objdumpコマンド)
objdump -p hello.exe | findstr "DLL Name"

デバッガ gdb

gdb (GNU Debugger) は、GCCやClangでコンパイルされたプログラムのデバッグに用いられるコマンドラインデバッガである。MSYS2・MinGW-w64・Cygwin環境に含まれる。

基本的な使い方:

# デバッグ情報付きでコンパイル (-g オプション)
gcc -g hello.c -o hello.exe

# gdb を起動
gdb hello.exe

# gdb 内でのコマンド例
(gdb) list         # ソースコード表示
(gdb) break main   # main関数にブレークポイント設定
(gdb) run          # プログラム実行開始
(gdb) next         # 次の行へステップ実行 (関数呼び出しはスキップ)
(gdb) step         # 次の行へステップ実行 (関数呼び出しの中に入る)
(gdb) print 変数名 # 変数の値を表示
(gdb) continue     # 次のブレークポイントまで実行継続
(gdb) quit         # gdb 終了

デバッグの基本操作

デバッグは、プログラムの誤り(バグ)を発見し修正するプロセスである。デバッガは以下のような機能を提供する。

デバッガにはgdb (コマンドライン) のほか、Visual StudioやVisual Studio Codeなどの統合開発環境(IDE)に組み込まれたグラフィカルなデバッガがある(PythonのデバッグについてはPython デバッガを参照)。

msbuild の実行 (Visual Studio プロジェクト用)

msbuildは、Visual Studioのプロジェクトファイル (.sln、.vcxprojなど) をコマンドラインからビルドするためのツールである。Native Tools Command Prompt など、ビルド環境が設定された状態で使用する。

実行例:

# Release構成でリビルド (hoge.sln)
msbuild hoge.sln /p:Configuration=Release /t:Rebuild /m

# Release構成、x64プラットフォームで全ターゲットをビルド
msbuild hoge.sln /p:Configuration=Release /p:Platform="x64" /t:all /m

(/m オプションはマルチコアビルドを有効にする)

3.3 Java (JDK)

JDK (Java Development Kit)

JDK (Java Development Kit) は、Javaアプリケーションを開発・実行するために必要なソフトウェア群である。コンパイラ (javac)、Java仮想マシン (JVM、java)、標準ライブラリ、デバッグツールなどが含まれる。

主要なJDKリリースにはLTS (Long-Term Support) バージョンがあり、安定した利用が推奨される (例: JDK 17、21、25)。(最新情報はOracle JDK FAQ参照)

JDK のインストール(Windows上、Oracle JDK 21 の例)
  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する (wingetを使用):
    winget install --scope machine Oracle.JDK.21

    (JAVA_HOME 環境変数やPATHの設定は通常インストーラが行うが、必要に応じて手動で設定)

【関連する外部ページ】

【サイト内のJava関連ページ】

Java のバージョンの確認、コンパイル、実行

【Java のバージョンの確認】

java -version
Javaバージョン確認

【Windows での Java プログラムのコンパイルと実行】

  1. テキストエディタで以下のJavaコードを Main.java という名前で保存する (例: %HOMEPATH% 内)。
    class Ball {
        double x;
        double y;
        String color;
        public Ball(double x, double y, String color) {
            this.x = x;
            this.y = y;
            this.color = color;
        }
        public double dist() {
            return this.x + this.y;
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Ball a = new Ball(1, 2, "red");
            Ball b = new Ball(3, 4, "green");
            System.out.printf("%f\n", a.dist());
        }
    }
    
  2. コマンドプロンプトMain.java があるディレクトリに移動し、以下のコマンドを実行する。
    # コンパイル (UTF-8でエンコードされている場合)
    javac -encoding UTF-8 Main.java
    
    # 実行
    java Main

コンパイルにより Main.class ファイルが生成され、java Main コマンドでそのクラスファイルが実行される。

Javaコンパイルと実行

3.4 その他言語・ツール (Perl, SWIG, LLVM など)

Strawberry Perl

Strawberry Perlは、Windows環境でPerlスクリプトを実行・開発するために必要なツール一式を提供するディストリビューションである。Perl本体に加え、コンパイラ(GCC)や外部ライブラリとの連携に必要なツールが含まれている。

Strawberry Perl のインストール(Windows上)
  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する (wingetを使用):
    winget install --scope machine StrawberryPerl.StrawberryPerl
    powershell -command "[System.Environment]::SetEnvironmentVariable('PERL_ENCODING', 'utf8', 'Machine')"
  3. 動作確認:
    1. テキストエディタで以下の内容を a.pl として保存 (例: %USERPROFILE% 内)。
      use strict;
      use warnings;
      use utf8;
      use Encode qw(decode encode);
      binmode(STDOUT, ':encoding(UTF-8)');
      print "こんにちは、世界!\n";
      
    2. コマンドプロンプトで実行し、結果を確認する。
      perl a.pl
Perlスクリプト実行例

【関連する外部ページ】

SWIG (Simplified Wrapper and Interface Generator)

SWIGは、C/C++で書かれたプログラムやライブラリを、Python、Java、Perl、Rubyなど他の高水準言語から利用するためのインターフェース(ラッパーコード)を自動生成するツールである。

SWIG のインストール(Windows上)
  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する (wingetを使用):
    winget install --scope machine SWIG.SWIG

    SWIG_LIB環境変数の設定が必要な場合は、インストール先に応じて設定する。インストール後にswig.exe -versionなどで動作を確認すること。

【関連する外部ページ】

SWIG の利用

SWIGは、インターフェースファイル (.i) に基づいてラッパーコードを生成する。

LLVM

LLVMは、コンパイラ基盤であり、モジュール式のコンパイラやツールチェーンを構築するためのライブラリとツールの集合である。Clang (C/C++/Objective-Cフロントエンド)、LLDB (デバッガ)、libc++ (C++標準ライブラリ)、lld (リンカ) などが含まれる。

LLVM のインストール(Windows上)
  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する (wingetを使用):
    winget install --scope machine LLVM.LLVM
    powershell -command "$installPath = 'C:\Program Files\LLVM\bin'; $oldpath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine'); if ($oldpath -notlike ('*' + $installPath + '*')) { $newpath = $oldpath + ';' + $installPath; [System.Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine') }"

    (2行目はLLVMの PATH を設定するコマンドである)

【関連する外部ページ】

LLVM の利用 (主要コンポーネントとコマンド例)

3.5 データベース ( MySQL, Firebird など)

SQLite 3: 軽量ファイルベースRDBMS

SQLite 3 について:別ページで説明している

MySQL Community Server: オープンソースRDBMS

MySQLは、Webアプリケーションを中心に世界中で利用されているオープンソースのリレーショナルデータベース管理システムである。

MySQL インストーラのインストール(Windows上)
  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する (wingetを使用、MySQL Installerをインストール):
    winget install --scope machine Oracle.MySQL

    インストール後、MySQL Installer を起動して、サーバー本体や関連ツール(Workbenchなど)をセットアップする。

MySQL Installer画面

【関連する外部ページ】

【サイト内の関連ページ】

Firebird: クロスプラットフォームRDBMS

Firebirdは、オープンソースのクロスプラットフォーム対応リレーショナルデータベース管理システムである。組み込み用途からクライアントサーバーシステムまで対応可能である。SQL標準への準拠度が高い。

Firebird 5 のインストール(Windows上)
  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する (wingetを使用、インストール先をC:\Firebird50に指定):
    winget install --location "C:\Firebird50" FirebirdProject.Firebird.5
    powershell -command "$installPath = 'C:\Firebird50\bin'; $oldpath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine'); if ($oldpath -notlike ('*' + $installPath + '*')) { $newpath = $oldpath + ';' + $installPath; [System.Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine') }"
  3. sysdba (管理者) パスワードの設定:

    Firebirdのインストールディレクトリ (例: C:\Firebird50\bin) に移動し、gsecコマンドでデフォルトパスワード(masterkey)を変更する。

    cd C:\Firebird50\bin
    gsec -user sysdba -password masterkey -modify sysdba -pw 新しいパスワード

【関連する外部ページ】

【サイト内の関連ページ】

Microsoft SQL Server Express: 無料版RDBMS

Microsoft SQL Server Expressは、Microsoftが提供するSQL Serverの無料版である。小規模なデータベースアプリケーションや学習用途に適している。機能制限はあるが、データベースエンジンのコア機能を利用できる。

Microsoft SQL Server 2022 Express のインストール(Windows上)
  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する (wingetを使用):
    winget install --scope machine Microsoft.SQLServer.2022.Express

    インストール中に、基本インストールかカスタムインストールかを選択する画面が表示される。

【関連する外部ページ】

3.6 Windows Developer Configurations(自動開発環境構築)

Windows Developer Configurations は、Microsoft が2026年6月2日のBuild 2026カンファレンスで正式リリース(GA)を発表したWinGetベースの開発環境自動構築ツールである。コマンド1つでWindows 11の開発環境をゼロから構築できる。オープンソースで公開されており、カスタマイズも可能である。

【公式リソース】

前提条件

セットアップ手順(共通)

  1. コマンドプロンプト管理者権限で起動する
  2. winget configure を有効化する(初回のみ):
    winget configure --enable
  3. VC++ ランタイムをインストールする(失敗する場合のみ必要):
    winget install Microsoft.VCRedist.2015+.x64
  4. リポジトリをクローンし、インストール先へ移動する:
    git clone https://github.com/microsoft/WindowsDeveloperConfig
    cd WindowsDeveloperConfig

Windows Dev Config: 基本開発環境のセットアップ

一からWindows 11の開発ワークステーションを構築する。WSL2の有効化のために1回の再起動が必要になる場合がある。再起動後、RunOnce タスクが自動で続きを実行し、Ubuntu のインストールまで完了する。

インストールされる主なツール:

実行コマンド(セットアップ手順の続き):

winget configure -f .\windows-dev-config\dev-config.winget --accept-configuration-agreements --disable-interactivity
再起動が必要な場合がある。事前に作業中のファイルを保存してから実行すること。再起動後、自動でセットアップが再開される。

WSL Comfort: WSL環境のカスタマイズ

WSL Comfort は、WSL内のシェル環境を整えるためのスクリプトである。Windows Dev Config 実行後に追加で実行する。zsh・Starship・Homebrew などの Linux 開発ツールをWSL(Ubuntu)に導入する。

winget configure -f .\wsl-comfort\wsl-comfort.winget --accept-configuration-agreements

導入される主なツール: zsh または bash(シェル)、Starship(高速・カスタマイズ可能なプロンプト)、Homebrew(Linux版パッケージマネージャ)、テーマ適用済みのターミナルプロファイル

Single Language Workload: 言語ツールチェーンの導入

特定のプログラミング言語に必要なツールチェーン一式を1コマンドで導入するモジュール群である。各言語を独立して、または Windows Dev Config と組み合わせて使用できる。

対応している言語・フレームワーク: TypeScript (Node.js)、Python、PowerShell、.NET、Go、Java、Rust、PHP、WinForms、WinUI 3

Python ワークロードのインストール(セットアップ手順の続き):

winget configure -f .\Workloads\python\configuration.winget --accept-configuration-agreements

Python本体、uv、開発に必要な依存関係が一括インストールされる。

Rust ワークロードのインストール:

winget configure -f .\Workloads\rust\configuration.winget --accept-configuration-agreements

Rustツールチェーン(rustup・cargo・rust-analyzer等)が一括インストールされる。

Java ワークロードのインストール:

winget configure -f .\Workloads\java\configuration.winget --accept-configuration-agreements

JDK・ビルドツール(Maven等)が一括インストールされる。

各設定ファイルは内容を事前に確認してから実行すること。設定ファイルはべき等(idempotent)に設計されており、既存の環境に対して再実行できる。

4. WSL 2 (Windows Subsystem for Linux)

WSL 2 概要

WSL 2は、Windows上でLinuxの実行ファイルをネイティブに実行するための互換レイヤーである。完全なLinuxカーネルを軽量な仮想マシン上で実行するため、WSL 1よりも高いパフォーマンスと完全なシステムコール互換性を提供する。Ubuntu、Debian、openSUSEなど、様々なLinuxディストリビューションをWindows上にインストールして利用できる。インストールの詳細な手順は「Windowsのさまざまなアプリケーション」の「10. Linux環境(WSL2)」セクションを参照すること。自動セットアップには3.6節 Windows Developer Configurations も利用できる。

主なWSLコマンド:

【サイト内の関連ページ】

基本的なLinuxコマンド: 別ページ »で説明

5. Windows システムの運用保守

5.1 Windows Update とバージョン確認

Windows Update の実行

システムのセキュリティと安定性を保つために、Windows Updateを定期的に実行することが重要である。(0.9 Windowsのシステム操作も参照)

  1. Windows の検索窓で「windows update」と入力し、「Windows Update の設定」を開く
  2. 「更新プログラムのチェック」ボタンをクリックし、利用可能な更新があればインストールする
Windows Update設定画面
「ファイル名を指定して実行」(Windows+R)で ms-settings:windowsupdate-action を実行するとWindows Update画面が開くことがある。

Windows のバージョン情報の確認

現在使用しているWindowsのバージョンとビルド番号を確認するには:

  1. Windows の検索窓で「winver」と入力し、実行する
winver検索
Windowsバージョン情報

5.2 システムツール (Sysinternals, Nmap, Netcat)

Microsoft Sysinternalsツール

Microsoft Sysinternalsは、Microsoftが提供する高度なWindowsシステムユーティリティ群である。システムの監視、トラブルシューティング、詳細情報の取得に役立つ。インストール手順は「Windowsのさまざまなアプリケーション」の「11. システム管理ツール」セクションを参照すること。

代表的なツール:

Sysinternalsの公式ページ: https://docs.microsoft.com/sysinternals/

Nmap, Netcat: ネットワーク診断ツール

Nmapはネットワーク探索とセキュリティスキャンニングのための強力なツールである。Netcat (nc) はTCP/UDP接続の読み書きを行うシンプルなネットワークユーティリティである。

Nmap/Netcatのインストール
  1. Nmap公式サイトからWindows用インストーラー (nmap-*-setup.exe) をダウンロードし、実行する。インストール時にNetcat (ncat) も含めるか選択できる。

使用例:

他者のネットワークやマシンを許可なくスキャンすることは避ける必要がある。

5.3 システムチェックと修復

システムイメージのチェックと修復 (DISM)

Windowsのシステムイメージの破損をチェックし、修復するためのコマンドである。システムファイルチェッカー (SFC) の実行前に実行することが推奨される。

  1. コマンドプロンプト管理者権限で起動する
  2. 以下のコマンドを実行する:
    dism /online /cleanup-image /scanhealth
    dism /online /cleanup-image /restorehealth

システムファイルの検証と修復 (SFC)

保護されているシステムファイルをスキャンし、破損しているファイルをキャッシュから復元する。

  1. コマンドプロンプト管理者権限で起動する
  2. 以下のコマンドを実行する:
    sfc /scannow

ディスク空き領域のゼロフィル (sdelete)

削除済みファイルの復元を困難にするため、ディスクの空き領域をゼロデータで上書きする(SSDには推奨されない場合がある)。

  1. Sysinternalsのsdeleteをダウンロードし、パスが通っている場所に配置する、またはフルパスで指定する
  2. コマンドプロンプト管理者権限で起動する
  3. 以下のコマンドを実行する(例: Cドライブの空き領域):
    sdelete -z c:

その他の保守情報

5.4 パッケージマネージャ (winget, Chocolatey)

パッケージマネージャは、ソフトウェアのインストール、更新、削除などをコマンドラインで効率的に行うためのツールである。

winget (Windows Package Manager)

wingetは、Microsoftが開発したWindows向けの公式パッケージマネージャである。Windows 11には標準搭載されている。wingetの基本的な操作については0.3 winget の基本を参照すること。詳細な使い方は「Windowsのさまざまなアプリケーション」のwingetセクションを参照すること。

winget のインストール (未導入の場合)

古いWindowsバージョンなどでwingetが導入されていない場合、以下の手順でインストールできる。

  1. GitHubのwinget-cliリリースページにアクセスする
  2. 最新リリースの「Assets」セクションから、.msixbundle という拡張子のファイル (例: Microsoft.DesktopAppInstaller_..._8wekyb3d8bbwe.msixbundle) をダウンロードする
  3. ダウンロードしたファイルを実行し、画面の指示に従ってインストールする
  4. コマンドプロンプトwinget -v を実行し、バージョンが表示されればインストール成功である

【関連する外部ページ】 GitHub の winget-cli のページ: https://github.com/microsoft/winget-cli

Chocolatey

Chocolateyは、Windows向けのサードパーティ製パッケージマネージャとして利用されている。多数のソフトウェアパッケージがコミュニティによって提供されており、choco installchoco upgradeなどのコマンドで管理できる。wingetで提供されていないパッケージ(MinGW-w64など)の取得に使用する。

Chocolatey のインストール(Windows上)
  1. Windowsで、コマンドプロンプトまたはPowerShellを管理者権限で起動する
  2. 公式サイトのインストール手順に従い、PowerShellで以下のコマンドを実行する(コマンドは変更される可能性があるため、公式サイトを確認すること):
    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

    (winget経由でもインストール可能: winget install --scope machine Chocolatey.Chocolatey)

  3. コマンドプロンプトを再起動し、choco -v でバージョンが表示されれば成功である

【関連する外部ページ】

Chocolatey の使用方法

主要なコマンド:

vcpkg: C/C++ ライブラリマネージャ

vcpkgは、Microsoftが開発するC/C++ライブラリ向けのクロスプラットフォームパッケージマネージャである。多くのオープンソースライブラリの取得、ビルド、プロジェクトへの統合を容易にする。

vcpkg のインストール(Windows上)
  1. GitとVisual Studio (C++開発ツール含む) がインストールされていることを確認する
  2. コマンドプロンプトで、vcpkgをインストールしたいディレクトリに移動し、以下のコマンドを実行する (例: C:\srcファイルシステム・パスの基本も参照):
    cd C:\src
    git clone https://github.com/microsoft/vcpkg
    .\vcpkg\bootstrap-vcpkg.bat
  3. (オプション) Visual Studioとの連携設定:
    .\vcpkg\vcpkg integrate install

vcpkg の GitHub のページ: https://github.com/microsoft/vcpkg

miniconda3

Minicondaは、Anacondaの軽量版であり、Python本体とパッケージ管理システムcondaを含む最小限のディストリビューションである。condaを使って、Pythonパッケージだけでなく、他のソフトウェアやライブラリも仮想環境ごとに管理できる。

URL: https://docs.conda.io/en/latest/miniconda.html

Windows での miniconda3 のインストール手順は、別ページ »で説明(2.5節にインストールコマンドも記載)。

6. 仮想化

6.1 VirtualBox: Type 2 ハイパーバイザ

VirtualBoxは、Oracleが開発するオープンソースの Type 2 ハイパーバイザである。 ホストOS(Windows、macOS、Linuxなど)上に、ゲストOSを実行する仮想マシンを作成・管理できる。 仮想マシンのインポート/エクスポート(OVF/OVA形式)、Guest Additionsによるホスト-ゲスト連携、 スナップショット機能などを備える。

VirtualBox のインストール(Windows上)

  1. コマンドプロンプト管理者権限で起動する。
  2. 次のコマンドを実行する(wingetを使用)。
    winget install --scope machine Oracle.VirtualBox
    powershell -command "$p = 'C:\Program Files\Oracle\VirtualBox'; $old = [System.Environment]::GetEnvironmentVariable('Path','Machine'); if ($old -notlike ('*'+$p+'*')) { [System.Environment]::SetEnvironmentVariable('Path', $old+';'+$p, 'Machine') }"
    2行目は、VBoxManage コマンドをどのディレクトリからも実行できるよう、 VirtualBox のインストールディレクトリをシステム環境変数 Path に追加する処理である (winget のインストーラが自動設定しない場合の補完)。 設定後はコマンドプロンプトを再起動して反映させる。

VirtualBox を用いて仮想マシンを作成(コマンドライン例)

VBoxManage コマンドでコマンドラインから仮想マシンを作成・設定する例(Ubuntu 24.04 Desktop)。

  1. ISO イメージをダウンロードする。-L オプションでリダイレクトに追従し、 -o で出力パスを明示指定する。Ubuntu のリリースサーバーはポイントリリース版 (例: ubuntu-24.04.2-desktop-amd64.iso)へリダイレクトするため、 ファイル名を固定することで以降のコマンドとの整合性を保つ。
    mkdir C:\VM
    curl -L -o "C:\VM\ubuntu-24.04-desktop-amd64.iso" https://releases.ubuntu.com/24.04/ubuntu-24.04-desktop-amd64.iso
  2. 仮想マシンを作成・設定する。冒頭3行は同名の仮想マシンが既存の場合に削除する処理で、 初回は 2> nul によりエラーが無視される。
    VBoxManage controlvm "myubuntu" poweroff 2> nul
    VBoxManage unregistervm "myubuntu" --delete 2> nul
    VBoxManage closemedium disk "C:\VM\myubuntu.vdi" --delete 2> nul
    
    VBoxManage createvm --name "myubuntu" --ostype "Ubuntu_64" --register
    VBoxManage modifyvm "myubuntu" --memory 8192 --cpus 2
    VBoxManage modifyvm "myubuntu" --graphicscontroller vmsvga --vram 128
    VBoxManage storagectl "myubuntu" --name "SATA Controller" --add sata --controller IntelAhci
    VBoxManage createmedium disk --filename "C:\VM\myubuntu.vdi" --size 51200 --format VDI
    VBoxManage storageattach "myubuntu" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "C:\VM\myubuntu.vdi"
    VBoxManage storageattach "myubuntu" --storagectl "SATA Controller" --port 1 --device 0 --type dvddrive --medium "C:\VM\ubuntu-24.04-desktop-amd64.iso"
    VBoxManage modifyvm "myubuntu" --nic1 nat
    VBoxManage modifyvm "myubuntu" --boot1 dvd --boot2 disk --boot3 none --boot4 none
    VBoxManage showvminfo "myubuntu"
    VBoxManage startvm "myubuntu"
    • --cpus 2: 割り当てる仮想CPUコア数。Ubuntu 24.04 Desktop のインストーラは 1コアでは動作が著しく重くなるため、2以上を推奨する。
    • --graphicscontroller vmsvga --vram 128: Linux ゲスト向けに推奨されるグラフィックス コントローラと VRAM サイズ(MiB)。デフォルトの 8 MiB では Ubuntu のデスクトップ環境起動後に 描画異常が生じるため、128 MiB 以上を設定する。
    • createmedium disk: VirtualBox 6.0 以降で createhd の後継となる 正式コマンドである。
    起動後、画面の指示に従ってゲストOSをインストールする。完了後に Guest Additions を導入すると、 ホスト-ゲスト間のファイル共有やクリップボード共有が利用できる。

VirtualBox公式: https://www.virtualbox.org/

6.2 Vagrant: 仮想環境構築ツール

Vagrantは、VirtualBox等のハイパーバイザを制御し、設定ファイル(Vagrantfile)に基づいて 仮想マシンの構築・管理を自動化するツールである。 カーネルを含むOS全体を仮想化するため、本番サーバー(Linux)とファイルシステム仕様 (パス区切り文字、ファイル名の大文字・小文字区別、パーミッション構造)を一致させた開発が可能である。 同一の Vagrantfile を共有することで、複数の環境で同じ構成を再現できる。

Vagrant のインストール(Windows上)

前提条件: VirtualBox などのハイパーバイザを事前にインストールしておく。

  1. コマンドプロンプト管理者権限で起動する。
  2. 次のコマンドを実行する(wingetを使用)。
    winget install --scope machine Hashicorp.Vagrant

Vagrant による仮想マシンの構築(基本操作)

作業ディレクトリに Vagrantfile(拡張子なし)を配置することで仮想マシンの構成を定義する。 以下は Ubuntu 24.04 の仮想マシンを構築し、Nginx をプロビジョニングする例である。

  1. 作業ディレクトリを作成する。
    mkdir C:\vagrant-myubuntu
    cd C:\vagrant-myubuntu
  2. C:\vagrant-myubuntu\Vagrantfile として以下を保存する。
    Vagrant.configure("2") do |config|
      config.vm.box      = "bento/ubuntu-24.04"
      config.vm.hostname = "myubuntu"
      config.vm.network "private_network", ip: "192.168.56.10"
    
      config.vm.provider "virtualbox" do |vb|
        vb.memory = 2048
        vb.cpus   = 2
      end
    
      config.vm.provision "shell", inline: <<-SHELL
        apt-get update -y
        apt-get install -y nginx
      SHELL
    end
    config.vm.box に指定する Box(事前構築済みの仮想マシンイメージ)は、 初回 vagrant up 時に Vagrant Cloud からダウンロードされる。
  3. 仮想マシンを起動する。初回はBoxイメージのダウンロードとプロビジョニングが実行される。
    vagrant up
  4. SSHで仮想マシンに接続する。
    vagrant ssh
  5. 仮想マシンを停止する(次回 vagrant up で再起動可能)。
    vagrant halt
  6. 仮想マシンを削除する(Box イメージは保持される)。
    vagrant destroy

Vagrant公式: https://www.vagrantup.com/

6.3 Docker: コンテナ管理ソフトウェア

Dockerは、Linuxカーネルが提供する名前空間(Namespaces)およびコントロールグループ(cgroups)を利用し、 プロセス単位で隔離された環境(コンテナ)を作成・管理するソフトウェアである。 Windowsでは、Docker DesktopがWSL2上のLinuxカーネルを共有してコンテナを実行する。 各コンテナは個別のOSカーネルを持たないためOSのブートが発生せず、 仮想マシンと比較してCPUおよびメモリのオーバーヘッドが小さい。

Docker Desktop のインストール(Windows上)

前提条件: WSL2 を有効にしておく(管理者権限のコマンドプロンプトで wsl --install を実行し、再起動する)。

  1. コマンドプロンプト管理者権限で起動する。
  2. 次のコマンドを実行する(wingetを使用)。
    winget install --scope machine Docker.DockerDesktop
    インストール後にシステムを再起動し、Docker Desktop を起動してセットアップを完了する。

Docker の基本操作

コンテナの起動・確認・停止・削除の基本的な操作例を示す。

Nginx コンテナをバックグラウンドで起動し(-d)、ホストの 8080 番ポートにマッピングする(-p)。

docker run -d --name mynginx -p 8080:80 nginx

実行中のコンテナ一覧を確認する。

docker ps

コンテナを停止・削除する。

docker stop mynginx
docker rm mynginx

Ubuntu 24.04 コンテナを対話モードで一時起動する(--rm により終了後に自動削除)。

docker run --rm -it ubuntu:24.04 bash

Docker公式: https://www.docker.com/

6.4 Vagrant と Docker の比較

比較項目 Vagrant(VirtualBox等) Docker(Docker Desktop + WSL2)
仮想化の対象 ハードウェアおよびOS全体 OSカーネルを共有したプロセス隔離
システム構造 ホストOS > ハイパーバイザ > ゲストOS > アプリ ホストOS > WSL2(カーネル) > Docker > アプリ
物理リソース消費 設定メモリ容量を固定で占有 ホストOSのリソースを動的に共有
設定・制御の対象 カーネルパラメータ、ネットワーク等OS全般 アプリケーション実行環境、依存ライブラリ等

Docker列のシステム構造は Windows 上(Docker Desktop + WSL2)の構成である。 Linux ホスト上では WSL2 レイヤーは存在せず、 「ホストOS(Linux)> Docker Engine > コンテナ」となる。

Vagrant は、本番サーバーが物理サーバー・VPS・AWS EC2 等の仮想マシン環境で OS レベルの一致が必要な場合や、 カーネルパラメータ・ネットワーク・OS の起動プロセスなど OS 全体の挙動を確認する場合に適する。 Docker は、本番環境が AWS ECS・EKS・GKE などコンテナ運用を前提としたインフラの場合や、 同一ホストOS 内で異なるバージョンの同一ミドルウェアを並行稼働させる場合、 複数のサービスコンポーネントを協調動作させる場合に適する。

なお、WSL2(Docker Desktop)と VirtualBox を同一の Windows 環境で併用する場合、 Hyper-V との競合により起動エラーやパフォーマンス低下が生じることがある。 その場合はシステム設定の調整が必要になる。

7. MSYS2・MinGW・Cygwin

7.1 MSYS2・MinGW・Cygwin: Windows上のUnixライク環境

Windows上でUnix/Linuxライクな開発環境やコマンドラインツールを利用するためのソフトウェア群である。それぞれ用途と特性が異なる。

現状の整理(2026年時点): Linux互換環境が必要な場合はWSL2が最初の選択肢となる。Windows上でネイティブなGNUツールチェーンが必要な場合はMSYS2が推奨される。Cygwinは特定のPOSIX依存ソフトウェアのビルドなど、WSL2やMSYS2では代替できない用途向けに維持されている。

MSYS2 のインストール(Windows上、推奨)

MSYS2は、MinGW-w64とPacmanパッケージマネージャを統合したWindows向けGNU開発環境である。

  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する:
    winget install --scope machine MSYS2.MSYS2
  3. MSYS2 UCRT64 ターミナルを起動し、パッケージを更新する:
    pacman -Syu
  4. GCC・GDB等の開発ツールをインストールする(MSYS2端末内で実行):
    pacman -S mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-gdb mingw-w64-ucrt-x86_64-cmake
  5. 確認(MSYS2端末内):
    gcc --version
    g++ --version

MSYS2公式ページ: https://www.msys2.org/

MinGW-w64 のインストール(Chocolatey経由)

MSYS2を使わずに、より簡易な方法でMinGW-w64(GCC・G++・GDB)をインストールしたい場合は、Chocolateyを使用する方法もある。ただし、MSYS2経由のインストールが推奨される。

  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. Chocolateyがインストールされていない場合は先にインストールする (winget install --scope machine Chocolatey.Chocolatey など)
  3. Chocolateyを使用してMinGW-w64をインストールする:
    choco install mingw -y
    (これによりGCC、G++、GDBなどがインストールされ、PATHも通常設定される)
  4. 確認: 新しいコマンドプロンプトを開き、以下のコマンドを実行してパスが通っているか確認する:
    where gcc
    where g++
    where gdb
    gcc --version
    g++ --version
MinGWコマンド確認
MinGWバージョン確認

Cygwin のインストール(Windows上)

特定のPOSIX依存ソフトウェアのビルドなど、WSL2・MSYS2では代替できない用途向けにCygwinをインストールする。

  1. Windowsで、コマンドプロンプト管理者権限で起動する
  2. 次のコマンドを実行する (wingetを使用):
    winget install --scope machine Cygwin.Cygwin
    powershell -command "$cygwinPaths = @('C:\cygwin64\bin', 'C:\cygwin64\sbin', 'C:\cygwin64\usr\local\bin', 'C:\cygwin64\usr\sbin'); $oldpath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine'); $pathsToAdd = $cygwinPaths | Where-Object { $oldpath -notlike ('*' + $_ + '*') }; if ($pathsToAdd) { $newpath = $oldpath + ';' + ($pathsToAdd -join ';'); [System.Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine') }"
  3. Cygwin Setupプログラムを使用して追加パッケージをインストールする:
    cd c:\cygwin64
    curl -O https://www.cygwin.com/setup-x86_64.exe
    .\setup-x86_64.exe -q -P wget,gcc-core,gcc-g++,gcc-fortran,gdb

【関連する外部ページ】

8. ツール選択ガイド

8.1 用途別ツール一覧

目的に応じて適切なツールを選択するための一覧である。

用途推奨ツール
一発で開発環境を構築Windows Developer Configurations(3.6節
ローカルLLM(コマンドライン)Ollama
指示からコードを自律生成Cline
コード補完GitHub Copilot Free
設定不要でAI支援Windsurf
拡張機能を自由に組み合わせVisual Studio Code
Pythonパッケージ管理(高速)uv
Pythonデバッグ(GUI)debugpy + VS Code(3.1節
Pythonデバッグ(コマンドライン)pdb(組み込み)または pudb
画像分類・物体検出opencv-python、PyTorch
音声分析librosa
自然言語処理transformers
RAG(検索拡張生成)LangChain、chromadb、sentence-transformers
クラウドAI API連携openai、google-generativeai、litellm
AIデモ作成Gradio
AI画像生成ComfyUI、Stable Diffusion 3.5
Python 3Dゲーム開発Panda3D
Windows GNUツールチェーン(ネイティブ)MSYS2(推奨)または MinGW-w64
LinuxコマンドをWindows上で実行WSL2(推奨)または Cygwin
コンテナ開発Docker Desktop、WSL containers(Build 2026)
仮想マシンVirtualBox
統計解析R + RStudio
数値計算(MATLAB互換)Octave
GIS・地理情報QGIS
3D CAD設計FreeCAD
PCB設計KiCad
3DCG・アニメーションBlender
論文・技術報告書の組版LaTeX(TeX Live)
Androidアプリ開発Android Studio
ネットワーク解析・スキャンNmap + Wireshark
ハードウェア監視HWiNFO64
ディスク使用量の可視化WinDirStat
高速ファイルコピーFastCopy
フォルダ同期・バックアップFreeFileSync
動画編集Shotcut、OpenShot、Avidemux
画面録画OBS Studio、AG-デスクトップレコーダー
画像編集GIMP
PDF閲覧・注釈PDF-XChange Editor
ブータブルUSB作成Rufus
資料デザインCanva