1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows11 に Ubuntu をインストールして開発利用するためのメモ

Last updated at Posted at 2025-02-07

はじめに

新しい Windows 11 の作業端末を購入したのだが、前の端末(Windows 10)で VirtualBox 経由でUbuntuを利用していたため、同様にこちらの環境をセットアップした。
しかし、GUI 経由だとどうしても動作がもっさりしているように感じたため、WSL2 を利用した開発環境構築を行おうとして、色々セットアップした調査結果を記す。

今回作成する構成

今回は以下のような構成を作成する。

  • Windows 11 に WSL2 と Ubuntu をインストールする
  • Ubuntu のデスクトップ環境は利用しない 1
  • CUI系の開発ツール (Git や Vim など)は Ubuntu にインストールする
  • GUI系の開発ツール (VSCode など)は Windows にインストールする
  • Windows 側からブラウザを通して開発したウェブアプリケーションを閲覧できる
    • 例えば docker run --rm -p 8080:80 nginx とした場合、Windows 側のブラウザで http://localhost:8080/ としてアクセスすれば nginx にアクセスできること

WSL2 と Ubuntu の導入

これはコマンドプロンプト(もしくはPowerShell)を開き、wsl --install を実行すれば完了する。 デフォルトで ubuntu がインストールされるようになっている。

コマンドの完了後、Windows を再起動するとアプリに Ubuntu がインストールされているため、これを立ち上げると初期設定が行われて、ターミナルが立ち上がる。

Docker のインストール

ターミナルは普通の Ubuntu として利用できる。 そのため、Docker のウェブページを参考にして、Docker を apt 経由でインストールする。
インストール後は sudo systemctl enable docker としておけば、Ubuntu を立ち上げたときに Docker サービスを自動的に立ち上げるようになる。

Windows / Ubuntu 間のファイルアクセス

Windows -> Ubuntu

Windows のエクスプローラーに \\wsl$ と打ち込めば、Ubuntu のファイルシステムにアクセスできる。

SnapCrab_NoName_2025-2-8_0-24-31_No-00.png

もしくはエクスプローラーに Linux が追加されているので、ここからでもアクセスできる。

SnapCrab_NoName_2025-2-8_0-31-15_No-00.png

Ubuntu -> Windows

Ubuntu のターミナルで /mnt/c にアクセスすると、Cドライブのルートにアクセスできる。

Windows から localhost で Ubuntu にアクセスするための設定

Windows 側のホームディレクトリに .wslconfig (フルパスは C:\Users\<ユーザ名>\.wslconfig ) というファイルを作成して、以下の内容を記載する。

.wslconfig
[wsl2]
localhostForwarding=True

このファイルを配置した後、wls (もしくは Windows)を再起動してこの設定を反映する。 設定ファイル内に [wsl2] というセクションを作るようにしないと、不明なキーがありますといったエラーが出力される。

.bashrc.bash_profile の読み込みについて

Ubuntu を立ち上げたとき、この2つのファイルがホームディレクトリに存在していると .bash_profile のみが読み込まれて、.bashrc は読み込まれないようだ。
そのため、.bash_profile の中で .bashrc を読みだすようにしてこの両方の設定をアクティブにしておく。

.bash_profile
if [[ -f ~/.bashrc ]] ; then
  . ~/.bashrc
fi

画面のカラー化の設定などが .bashrc に書かれているので、こちらを読みだした方が便利。

Linux 上で実行可能な GUI アプリケーションについて

WSL2では Linux GUI アプリもコマンドを入力すれば Windows 上にウインドウとして表示してくれるそうだ。
マニュアルによると GIMP すら実行できるらしい。

gitk もこれができるかと思って試したら sudo apt install gitk を実行した後、gitk コマンドでウインドウ表示ができた。 同様に sqlitebrower もウインドウ表示ができるなど、かなり多くの apt で入手した GUI コンテンツが実行可能な模様。

VSCode によるコンテンツ編集時の注意点

WSL上のファイルを開く場合は先述したパスを直接開くのではなく、拡張機能WSLをインストールした後 WSL に接続して編集する、という方式が推奨される。
VSCodeで直接パスを指定していると開発関連のツールのパス解決がうまくいかない。 今回の導入時は PHP のクラスが認識されないなどの問題が発生したが、WSL接続をして編集すればこれらの問題は解消された。

まとめ

上記の設定を行うことで、

  • Windows の GUI で Ubuntu 上のファイルを編集可能
  • Ubuntu を使って docker や python, php などのコマンドを実行可能
  • ウェブアプリケーションを開発する場合 Windows 側で localhost 経由でアクセス可能

となる。
おそらく、ここまでできれば VirtualBox 上で動作させるよりはパフォーマンスがよいと思うので、実際に試していきたい。

  1. 厳密には1度 xrdp で接続可能なリモートデスクトップを導入してみたが、RDP経由だからか localhost 上であっても動きがややもっさりしているように感じたので、導入を見送った

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?