はじめに (対象読者・この記事でわかること)

この記事は、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 といったスクリプトを直接実行します。このスクリプトは以下の点でトラブルの温床となります。

  1. 依存パッケージの不足aptlibssl-devca-certificates が未インストールの場合、HTTPS 経由でのスクリプト取得が失敗する。
  2. 権限エラー:インストールスクリプトは $HOME/.deno/bin にバイナリを書き込むが、WSL2 のユーザー権限が正しく設定されていないと書き込みに失敗する。
  3. 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-certificatescurl、またビルドに必要な build-essential をインストールします。

Bash
sudo 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 オプションでスクリプトの出力を標準エラーに流すと、デバッグがしやすくなります。

Bash
curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.38.0
  • v1.38.0 は執筆時点での最新安定版です。必要に応じてバージョンを変更してください。
  • インストールが成功すると、$HOME/.deno/bindeno バイナリが配置されます。

エラー例と対処
| エラーメッセージ | 原因 | 解決策 | |-------------------|------|--------| | 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(またはお好みのシェル設定ファイル)にパスを追記します。

Bash
echo 'export DENO_INSTALL="$HOME/.deno"' >> ~/.bashrc echo 'export PATH="$DENO_INSTALL/bin:$PATH"' >> ~/.bashrc source ~/.bashrc

確認
以下のコマンドでバージョンが表示されれば成功です。

Bash
deno --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 のホームディレクトリ内に設定し、キャッシュやモジュールの保存場所を統一する。
Bash
export DENO_DIR="$HOME/.deno"

2. deno fmt が「No such file or directory」になるケース

deno fmt はデフォルトでプロジェクトのルートに .deno ディレクトリを作成しますが、権限が不足していると失敗します。解決策はディレクトリの所有者を自分に変更することです。

Bash
sudo 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 未設定 .bashrcexport 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 の標準ライブラリやサードパーティモジュールを活用した実践的なプロジェクト構築をテーマに、記事を執筆予定です。

参考資料