はじめに (対象読者・この記事でわかること)
この記事は、Windows 10/11 の WSL2 上で Deno を利用したい開発者、特に以下のような方を対象としています。
- Node.js や Deno に触れたことはあるが、WSL2 の環境でインストールがうまく行かず苦戦している方
- Windows 環境で Linux コマンドラインを活用したいが、ツール間の依存関係で壁にぶつかっている方
本記事を読むことで、WSL2 に Ubuntu(または Debian)をセットアップし、公式のインストール手順に従うだけでは解決しない典型的なエラー(パッケージの競合、権限エラー、システムパスの不整合)を一つずつ検証・解決できるようになります。最終的に deno run が問題なく実行でき、VS Code の Remote‑WSL 拡張を使った快適な開発サイクルが構築できるようになります。
前提知識
この記事を読み進める上で、以下の知識があるとスムーズです。
- 基本的な Linux コマンド(apt, bash, chmod など)の利用経験
- Windows Subsystem for Linux (WSL2) のインストールと基本操作
- Deno または Node.js の概念的な理解(インストール・実行コマンド程度)
WSL2 と Deno の概要 – なぜ環境構築が難しいのか
WSL2 は従来の WSL1 と比べてフル Linux カーネルを提供し、Docker などのコンテナ技術とも相性が良い点が特徴です。しかし、Windows のファイルシステムと Linux のファイルシステムが別々に管理されるため、パスや権限に関する不整合が起こりやすくなります。Deno はセキュリティを重視した実行時権限(--allow-read、--allow-net など)を持ち、インストール時に curl -fsSL https://deno.land/x/install/install.sh | sh といったスクリプトを直接実行します。このスクリプトは以下の点でトラブルの温床となります。
- 依存パッケージの不足:
aptでlibssl-devやca-certificatesが未インストールの場合、HTTPS 経由でのスクリプト取得が失敗する。 - 権限エラー:インストールスクリプトは
$HOME/.deno/binにバイナリを書き込むが、WSL2 のユーザー権限が正しく設定されていないと書き込みに失敗する。 - PATH の設定ミス:インストール後にシェルのプロファイル (
~/.bashrcなど) にパスを追記する処理がスキップされると、denoコマンドが認識されない。
これらの背景を踏まえて、具体的な解決手順を順に追っていきます。
WSL2 上で Deno を正しくインストールする手順
本セクションでは、環境構築の全工程を「ステップ1」から「ステップ4」まで分けて解説します。実際にターミナルに入力すべきコマンド例と、よくあるエラーメッセージに対する対処法も併せて提示します。
ステップ1 WSL2 のディストリビューションとパッケージを最新にする
まずは Ubuntu(例として 22.04 LTS)を最新状態にします。古いパッケージリストや未更新のライブラリが原因でインストールが失敗するケースが多いです。
Bash# WSL2 の Ubuntu にログインした状態で実行 sudo apt update && sudo apt upgrade -y
ポイント
- apt update はパッケージインデックスを取得し、apt upgrade はインストール済みパッケージを最新にします。
- -y オプションで自動的に「yes」を答えるので、手間が省けます。
ステップ2 必須パッケージのインストール
Deno のインストールスクリプトが HTTPS 経由で取得できるよう、ca-certificates と curl、またビルドに必要な build-essential をインストールします。
Bashsudo apt install -y curl ca-certificates build-essential libssl-dev
ハマりポイント
- libssl-dev が無いと、TLS 接続時に「SSL certificate problem: unable to get local issuer certificate」というエラーが出ます。
- build-essential が欠如していると、後続で deno の依存ライブラリビルドに失敗することがあります。
ステップ3 Deno の公式インストールスクリプトを実行
公式が提供するシンプルなインストールコマンドをそのまま実行します。-f オプションでスクリプトの出力を標準エラーに流すと、デバッグがしやすくなります。
Bashcurl -fsSL https://deno.land/x/install/install.sh | sh -s v1.38.0
v1.38.0は執筆時点での最新安定版です。必要に応じてバージョンを変更してください。- インストールが成功すると、
$HOME/.deno/binにdenoバイナリが配置されます。
エラー例と対処
| エラーメッセージ | 原因 | 解決策 |
|-------------------|------|--------|
| permission denied | $HOME/.deno ディレクトリの所有者が root になっている | sudo chown -R $USER:$USER $HOME/.deno を実行 |
| command not found: curl | curl が未インストール | ステップ2の apt install でインストール |
| SSL: certificate verify failed | ca-certificates が古い | sudo apt reinstall ca-certificates で再インストール |
ステップ4 PATH 環境変数へ Deno のバイナリを追加
インストールだけでは deno コマンドがシェル上で認識されません。.bashrc(またはお好みのシェル設定ファイル)にパスを追記します。
Bashecho 'export DENO_INSTALL="$HOME/.deno"' >> ~/.bashrc echo 'export PATH="$DENO_INSTALL/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
確認
以下のコマンドでバージョンが表示されれば成功です。
Bashdeno --version # example output deno 1.38.0 (release, x86_64-unknown-linux-gnu) v8 12.3.254.13 typescript 5.3.3
ハマった点やエラー解決
1. Windows と Linux のパス混在エラー
WSL2 のファイルシステムは /mnt/c/ から Windows のディレクトリへアクセスできますが、deno が相対パスで Windows パス (C:\Users\...) を参照しようとすると「Permission denied」エラーが出ます。対策は以下です。
- ソースコードは必ず Linux 側(
~/project)に保存し、VS Code の Remote‑WSL 拡張で直接開く。 - 環境変数
DENO_DIRを Linux のホームディレクトリ内に設定し、キャッシュやモジュールの保存場所を統一する。
Bashexport DENO_DIR="$HOME/.deno"
2. deno fmt が「No such file or directory」になるケース
deno fmt はデフォルトでプロジェクトのルートに .deno ディレクトリを作成しますが、権限が不足していると失敗します。解決策はディレクトリの所有者を自分に変更することです。
Bashsudo chown -R $USER:$USER $HOME/.deno
3. WSL2 のリソース不足によるインストール失敗
WSL2 のデフォルト設定ではメモリや CPU が制限され、特にビルド系コマンドが途中で「Killed」されることがあります。%UserBase%/.wslconfig に以下を追記し、再起動します。
Ini[wsl2] memory=4GB processors=2
解決策まとめ
| 問題 | 原因 | 解決策 |
|---|---|---|
curl が無い |
基本パッケージ未インストール | sudo apt install curl |
permission denied (インストールディレクトリ) |
所有者が root | sudo chown -R $USER:$USER $HOME/.deno |
deno が認識されない |
PATH 未設定 | .bashrc に export PATH="$HOME/.deno/bin:$PATH" を追記 |
| SSL エラー | ca-certificates が古い |
sudo apt reinstall ca-certificates |
| Windows パス混在 | ファイルが Windows 側にある | Linux 側のフォルダで作業し、DENO_DIR を設定 |
これらを順に実行すれば、WSL2 上で Deno の開発環境を確実に構築できます。
まとめ
本記事では、WSL2 環境で Deno をインストールできない典型的な問題点を洗い出し、パッケージの更新・必須依存のインストール・公式スクリプト実行・PATH の設定という 4 つのステップで解決する方法を詳述しました。
- 必須パッケージが揃っていないと HTTPS ダウンロードが失敗する
- 権限や所有者設定のミスがインストールエラーの原因になる
- PATH への追加を忘れるとコマンドが認識されず、インストール成功と錯覚しやすい
これらを正しく実施すれば、deno run がシームレスに動作し、VS Code の Remote‑WSL と併せて快適な開発サイクルが構築できます。次は Deno の標準ライブラリやサードパーティモジュールを活用した実践的なプロジェクト構築をテーマに、記事を執筆予定です。
参考資料
