====== Windows Subsystem for Linux - Ubuntu ======
{{tag>wsl ubuntu windows}}
* [[https://docs.microsoft.com/en-us/windows/wsl/about|WSLについて]]
* [[https://docs.microsoft.com/en-us/windows/wsl/wsl-config#configure-per-distro-launch-settings-with-wslconf|Configure per distro launch settings with wslconf(/etc/wsl.conf)]]
===== インストール =====
- ''プログラムと機能''から''Windows Subsystem for Linux'' を有効にする。
- ''Microsoft Store''から''Ubuntu''をインストールする。
==== 「Ubuntu」と「Ubuntu 18.04 LTS」や「Ubuntu 20.04 LTS」との違い ====
Ubuntuは最新のLTSリリースをインストールする。バージョン番号付きは、そのバージョンに固定。
==== 最新バージョンへのアップグレード ====
新しいLTSがリリースされても、インストールしたときのバージョンを維持し、自動的にアップグレードすることはない。
Ubuntuのバージョンは、以下いずれかのファイルを''cat''することで確認できる。
* ''/etc/os-release''
* ''/etc/lsb-release''
* ''/etc/issue''
一番簡単で確実な方法は、Ubuntuの[[#環境をインストールした時の状態に戻す|リセット]]またはアンインストールしてから再インストール。
ただし、ユーザの追加やロケールの設定などインストールからやり直すことになる。
Ubuntuの標準の方法で新しいバージョンにアップグレードしたい場合は以下のコマンドを実行する。
sudo apt update
sudo apt upgrade
sudo do-release-upgrade
LTSがリリースされてから''do-release-upgrade''でアップグレード出来るようになるまで時間がかかるらしい。
また、18.04 LTSからのアップグレードを''do-release-upgrade -d''で試してみたが途中でエラーが発生してアップグレードに失敗した。
==== Ubuntuのインストール先 ====
''C:\Users\ユーザ名\AppData\Local\Microsoft\WindowsApps\ubuntu.exe''
==== ファイルシステムの相互参照 ====
Ubuntuのファイルシステムは、''C:\Users\ユーザ名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs''にある。
WSLを実行中は''\\wsl$\Ubuntu\''で参照可能。
WindowsのCドライブは、Ubuntuの''/mnt/c''にマウントされている。
デフォルトではUbuntuにマウントしたWindowsのファイルシステムは大文字小文字を区別しない。
大文字小文字の区別は、ドライブごとならマウントオプションで、
ディレクトリごとなら''sudo apt install attr''の後、''getfattr/setfattr -n system.wsl_case_sensitive''で設定可能。
===== 初期設定 =====
==== プロキシの設定 ====
=== 環境変数の設定 ===
HTTPS_PROXY=http://ユーザ名:パスワード@プロキシサーバホスト名:ポート番号
HTTP_PROXY=http://ユーザ名:パスワード@プロキシサーバホスト名:ポート番号
export HTTPS_PROXY
export HTTP_PROXY
コンソールを再起動して確認。
printenv | sort
=== パッケージマネージャAPTの設定 ===
# see apt-transport-http(1) apt-transport-https(1) apt.conf(5) apt_auth.conf(5)
Acquire::http::Proxy "http://ユーザ名:パスワード@プロキシサーバホスト名:ポート番号";
Acquire::https::Proxy "http://ユーザ名:パスワード@プロキシサーバホスト名:ポート番号";
==== パッケージの更新 ====
sudo apt update
sudo apt upgrade
==== 日本語の設定 ====
locale -a | grep ja_JP
sudo apt install -y language-pack-ja
sudo update-locale LANG=ja_JP.UTF-8
sudo apt autoremove
exit
コンソールを再起動して確認。
locale
===== 小技集 =====
==== ネットワークドライブのマウント ====
''/mnt/z''にマウントして使用する場合。
※先にWindows上で認証しておく必要がある。
=== ネットワークドライブを割り当てている場合 ===
sudo mkdir /mnt/z
sudo mount -t drvfs Z: /mnt/z
USBディスクなども同じ方法。
=== ネットワークドライブを割り当てていない場合 ===
ネットワーク共有フォルダの場所をUNCで指定する。
sudo mkdir /mnt/z
sudo mount -t drvfs '\\ホスト名\ディレクトリ名' /mnt/z
=== マウントを解除する ===
sudo umount /mnt/z
=== 起動時にマウントしておきたい場合 ===
''/etc/fstab''に追記する。
\\ホスト名\ディレクトリ名 /mnt/z drvfs defaults 0 0
==== エクスプローラから指定フォルダでコンソールを開く ====
- エクスプローラでフォルダを''Shift''を押しながら右クリック
- ''Linuxシェルをここに開く''が現れるのでクリック
そのフォルダをWSLにマウントしていてアクセス可能なら、そのフォルダをカレンディレクトリにしてコンソールが開く。
==== マウスでコピペできるようにする ====
- コンソール左上のアイコンをクリックして''プロパティ''を選択。
- ''オプション''タブの''編集オプション''で''簡易編集モード''を有効にする
==== 環境をインストールした時の状態に戻す ====
- ''設定''-''アプリと機能''
- ''Ubuntu''を選択
- ''詳細オプション''を選択
- ''リセット''ボタンを押下
==== Visual Studio Codeとの連携 ====
| Extension name | Remote - WSL |
| Extension identifier | ''ms-vscode-remote.remote-wsl'' |
| Help | [[https://code.visualstudio.com/docs/remote/wsl|Developing in WSL]] |
WSLのコンソールでディレクトリに移動し、''code .''を実行する。
または、Visual Studio Codeから''F1''、''Remote-WSL: New Window''を選択し、新しく開いたウィンドウからディレクトリを開く