Windows 開発環境

はじめに

Windows で UNIX ライクなコマンドライン操作を行うには、いくつかの選択肢がある。

WSL (Windows Subsystem for Linux)
Windows で Linux ディストリビューションを実行する環境を提供する機能。
WSL2 からは、カーネルも Linux になっている。
Microsoft としては WSL を推奨している。
便利だが、ディスクスペースを食いつぶす問題がある。
PowerShell
Microsoft 製 CUI。UNIX とは異なる体系。
コマンドレットエイリアスのおかげで多少の互換はある。
いずれにしても最初はアプリケーションのインストールのために PowerShell での作業になる。 (GUI でもいける。)
Git Bash
後述する Git for Windows をインストールするとついてくる UNIX ライクな環境。
パッケージ管理とかビルドユーティリティとかはついてない最低限の構成。
MSYS2 + MinGW
MSYS2 は Windows における POSIX 準拠を目指した開発環境。 パッケージ管理ツールとして Arch Linux で使われる pacman をフォークしている。
MinGW は Windows 用の C/C++ ビルドツールチェイン。

他の UNIX 系 OS との互換性をできる限り保つなら WSL、 Windows (C ドライブ) 内の作業で完結させつつもビルド環境が必要なら MSYS2 + MinGW、 それ以外の用途なら PowerShell か Git Bash がいいのでは。

デスクトップを OneDrive 下に置く設定は無効にして C:/Users/_username_ で作業する方が安全。

パッケージ管理

Windows におけるパッケージ管理の主な選択肢として、 Microsoft 公式の Winget、 古株で対応するパッケージも多い Chocolatey、 ユーザー権限で使いやすい Scoop の3つがある。

Winget

新しめの Windows ならデフォルトで使えるはず。 後述のツールはどれも winget で入れることができる。

Basic usage

winget install/uninstall
パッケージのインストール/アンインストール
winget search
パッケージの検索
例: winget search rstat
winget list
インストール済みパッケージの表示

Chocolatey

Chocolatey のインストール

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'))

Basic usage

choco install/uninstall
パッケージのインストール/アンインストール (管理者権限が必要)
choco search
パッケージの検索
choco list
インストール済みパッケージの表示

Scoop

インストール

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

Git

プロジェクトのバージョン管理のためにも必須。 インストールは winget か、Git for Windows を参照。

R

VSCode で使うには PATH を教えてあげる必要がある:

settings.json
{
  "r.rpath.windows": "C:\\Program Files\\R\\R-4.4.0\\bin\\x64\\R.exe",
  "r.rterm.windows": "C:\\Program Files\\R\\R-4.4.0\\bin\\x64\\Rterm.exe",
}

Python

Python 環境構築 — Windows を参照

統合開発環境

好きなやつを入れる:

Quarto

https://quarto.org/docs/get-started/

Windows 用のやつを入れてあげる。 (R に付属しているやつを使うことはできなさそう?)

PDF のレンダリング用に tex を入れてやる (c.f. ~/AppData/Roaming/TinyTeX/):

quarto install tinytex

PDF で日本語フォントを使うには?

Quarto PDF で日本語フォントを使う場合、 デフォルトでは原ノ味フォントが使われるらしい。 Ubuntu とかは最初のインストールでプリセットされていたはずだが、 Windows の Quarto では原ノ味含め、日本語フォントがプリセットされていないっぽい。

そこで、tlmgr を使ってフォントをインストールしてやることで使えるようになる:

> .\AppData\Roaming\TinyTeX\bin\windows\tlmgr.bat install haranoaji
Locale 'Japanese_Japan.932' is unsupported, and may crash the interpreter.
tlmgr.pl: package repository https://ftp.kddilabs.jp/CTAN/systems/texlive/tlnet/ (verified)
[1/1, ??:??/??:??] install: haranoaji [25570k]
Locale 'Japanese_Japan.932' is unsupported, and may crash the interpreter.
running mktexlsr ...
done running mktexlsr.
tlmgr.pl: package log updated: C:/Users/kokep/AppData/Roaming/TinyTeX/texmf-var/web2c/tlmgr.log
tlmgr.pl: command log updated: C:/Users/kokep/AppData/Roaming/TinyTeX/texmf-var/web2c/tlmgr-commands.log