Ubuntu 24.04LTS on WSL2の初期設定(2026年度版)

前提_

WSLとUbntu 24.04のインストールが終わっていること。終わっていない場合は以下のページをみてインストールする。

何かうまくいかないことがあったら、本ページの「トラブルシューティング」を参照のこと。

本ページでのPowershellやLinux/Unixコマンドの表記方法_

本ページではターミナル上で入力する命令(Powershell、Linux/Unixコマンド、あるいはコマンドという)をパーセント記号(%)の後ろに表記する。たとえば以下のように表記する。

% コマンド

Linux/Unixコマンドの一つであるlsを表記する場合は以下のようにあらわす。これはターミナル上でlsという文字列を入力し、その後Enterキーを押すという意味である。

% ls 

また、必要に応じてLinux/Unixコマンドを実行した際の出力結果も例として示す。出力結果は冒頭にパーセント記号がついていない文字列である。以下の表記例は ls -1 というコマンドを実行した結果としてgotohという文字列が表示されたことを表す。

% ls -1
gotoh

これとは別に、後で説明するLinuxのroot権限でコマンドを実行する場合には冒頭にパーセント記号の代わりにシャープ記号(#)を用いて表記する。

管理者(root)権限とsudoコマンド_

WindowsやMacOSと同様にLinuxでも新しいソフトウェアをインストールする際には管理者権限が必要となる。

Unix/Linuxでは管理者権限を持つユーザはrootである。よって、以下、管理者権限をroot権限と呼ぶこととする。一般的にUnix/Linuxではrootとしてログインすることは推奨されていない。

一般ユーザ(インストール時に設定したユーザ)の状態で、root権限としてコマンドを実行する場合には、実行したいコマンドの前に「sudo」という特別なコマンドつけて実行する。「sudo」をつけてコマンドを実行する際には一般ユーザのパスワードの入力が要求される。

たとえば、lsというコマンドをroot権限で実行するときには以下のように入力する(これ以降のコマンド入力例ではコマンドの前に「%」や「#」がついている。%や#は入力しないこと。%がついているコマンドは一般ユーザ権限での実行を表し、#がついているコマンドはroot権限での実行を示す。)以下のようにパスワードの入力が求められるのでパスワードを入力する。以下の例ではユーザgotohの状態でsudoを実行しているので、gotohのログインパスワードの入力が求められている。

%  sudo ls
[sudo] password for gotoh:

/etc/apt/sources.list.d/ubuntu.sources のリポジトリを日本国内に変更する_

Ubuntuではソフトウェアをパッケージという名前で管理している(プログラム&設定ファイルをひとまとめにしてパッケージと呼んでいる)。パッケージは /etc/apt/sources.list.d/ubuntu.sources に記載されているリポジトリで提供されている。標準設定では海外のリポジトリにアクセスするようになっている。海外のリポジトリにアクセスすると時間がかかるため、日本国内のリポジトリにアクセスするように変更する。

以下のコマンドを実行する。コピー&ペースト推奨!

% cd /etc/apt/sources.list.d

% ls
ubuntu.sources
(ubuntu.sourcesというファイルがあるかどうかを確かめる)

% sudo sed -i.bak -e "s/http:\/\/archive\.ubuntu\.com/https:\/\/ftp\.udx\.icscoe\.jp\/Linux/g" ubuntu.sources
(上のコマンドの意味は ubuntu.sources中の「http://archive.ubuntu.com」という文字列を「https://ftp.udx.icscoe.jp/Linux」という文字列に置き換える。
  元のファイルは ubuntu.sources.bak という名前でバックアップをとっている)

% sudo sed -i.2.bak -e "s/http:/https:/g" ubuntu.sources
(上のコマンドの意味は ubuntu.sources中の「http:」という文字列を「https:。
  元のファイルは ubuntu.sources.bak2 という名前でバックアップをとっている)

%  ls -1
ubuntu.sources
ubuntu.sources.bak
ubuntu.sources.2.bak
(ubuntu.sourcesとubuntu.sources.bakとubuntu.sources.2.bakいうファイルがあるかどうかを確かめる)

% diff ubuntu.sources.bak ubuntu.sources
(二つのファイルの差分を表示するコマンド。 
「<」記号が1つ目のファイルの記述、「>」の記号が2つ目のファイルの該当部分
上のコマンドの実行結果は以下のようになる。http://archive.ubuntu.com/ubuntu/がhttps://ftp.udx.icscoe.jp/Linux/ubuntu/に置き換えられていればよい。)

1c1
< # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
---
> # See https//help.ubuntu.com/community/UpgradeNotes for how to upgrade to
33c33
< URIs: http://archive.ubuntu.com/ubuntu/
---
> URIs: https://ftp.udx.icscoe.jp/Linux/ubuntu/
41c41
< URIs: http://security.ubuntu.com/ubuntu/
---
> URIs: https://security.ubuntu.com/ubuntu/

これでパッケージをダウンロードするリポジトリの変更ができた。

インストールされているソフトウェアの更新(apt update, apt upgrade)_

次にインストールされているソフトウェアを最新版に更新する。これは、WindowsでいうWindows Updateと同じような処理である。Windows Subsystem for Linux上にインストールしたUbuntuでは適宜、手動で行う必要がある。

以下のコマンドを定期的に(1週間に1度くらい)実行する必要がある。では、以下を実行する。インターネット環境やお使いのパソコンの性能によってしばらく時間がかかる。

% sudo apt update
% sudo apt upgrade -y

アップグレード途中で選択肢が表示された場合は、基本的に「Yes」を選択し、続ければよい(慣れてきたら検討すること)。

インストールしたいソフトウェア(パッケージ)の検索(apt search)_

Ubuntuに新しいソフトウェアを追加したい場合(たとえばプログラミング言語Pythonとか)は、まずはパッケージが存在するかどうかを調べる必要がある。

パッケージの検索は以下のコマンドで行う。

% sudo apt search 検索したい文字列

たとえば、日本語設定用パッケージlanguage-pack-ja が存在するか調べたい場合は、以下のように入力する。該当するパッケージが存在する場合には以下のように検索結果が表示される。

% sudo apt search language-pack-ja
Sorting... Done
Full Text Search... Done
language-pack-ja/noble-updates 1:24.04+20260127 all
  translation updates for language Japanese

language-pack-ja-base/noble-updates 1:24.04+20260127 all
  translations for language Japanese

ソフトウェアのインストール(apt install)_

パッケージのインストールは以下の書式になっている。

% sudo apt install パッケージ名, ...

たとえば、language-pack-ja をインストールする場合は以下のようにする。自動的に関連するソフトウェアもインストールしてくれる。

% sudo apt install -y language-pack-ja
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  language-pack-ja-base
The following NEW packages will be installed:
  language-pack-ja language-pack-ja-base
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 1650 kB of archives.
After this operation, 7700 kB of additional disk space will be used.
Get:1 https://ftp.udx.icscoe.jp/Linux/ubuntu noble-updates/main amd64 language-pack-ja-base all 1:24.04+20260127 [1648 kB]
Get:2 https://ftp.udx.icscoe.jp/Linux/ubuntu noble-updates/main amd64 language-pack-ja all 1:24.04+20260127 [1896 B]
Fetched 1650 kB in 1s (3166 kB/s)
Selecting previously unselected package language-pack-ja-base.
(Reading database ... 40803 files and directories currently installed.)
Preparing to unpack .../language-pack-ja-base_1%3a24.04+20260127_all.deb ...
Unpacking language-pack-ja-base (1:24.04+20260127) ...
Selecting previously unselected package language-pack-ja.
Preparing to unpack .../language-pack-ja_1%3a24.04+20260127_all.deb ...
Unpacking language-pack-ja (1:24.04+20260127) ...
Setting up language-pack-ja (1:24.04+20260127) ...
Setting up language-pack-ja-base (1:24.04+20260127) ...
Generating locales (this might take a while)...
  ja_JP.UTF-8... done
Generation complete.

今回はオプション「-y」をつけているが、このオプションを外すと対話的にインストールが進む。対話的にインストールする場合は、あるパッケージが必要なその他のパッケージが合わせて表示される。その後、インストールする場合にはYのキーを、インストールを止める場合はNのキーを押す。

インストール済みのソフトウェアを調べる(which)_

whichコマンドで使いたいLinuxコマンドがあるかどうかを確認できる。

% which 調べたいLinuxコマンド

たとえば、データ分析や自然言語処理でよく使われているプログラミング言語 Python バージョン3 がインストールされているか調べたいときには以下のコマンドを実行する。

% which python3
/usr/bin/python3

コマンドがインストールされている場合はインストールされているディレクトリ(Windowsでいうフォルダ)が表示される。

インストールされている場合は何も表示されない。たとえば、which hogehogeを実行してみる。

% which hogehoge

日本語環境の設定_

Ubuntuをインストールした直後は英語環境になっている。たとえば、日付を表示するコマンドdateコマンドを打つと英語メッセージが表示される。(%表示はコマンドを表すためのもの。入力しなくてよい)

% date
Tue Apr  7 19:25:10 JST 2026

日本語環境に設定を変更する。

language-pack-jaがインストールされているとする。インストールしていない場合は以下のコマンドでインストールする。

% sudo apt install -y language-pack-ja

まず、メッセージなどを日本語にする。以下のコマンドを実行する。

% sudo update-locale LANG=ja_JP.UTF-8

一度、Ubuntuを終了する。

% exit

Ubuntuを再起動し、日本語環境になっているかを確認する。

% echo $LANG
ja_JP.UTF-8

日付表示が日本語表記になっていることを確認する。

%  date
2026年  4月  7日 火曜日 19:26:10 JST

タイムゾーンを日本(JST)にする_

標準時間帯を変更する。日本標準時(JST)はグリニッジ標準時から9時間進んでいる(UTC+9)。

% sudo dpkg-reconfigure tzdata
[sudo] gotoh のパスワード:

上の画面で方向キーを使って「アジア」を選択する。Tabキーを押して「了解」を選択し、Enterキーを押す。

上の画面で上の画面で方向キーを使って「東京」を選択する。Tabキーを押して「了解」を選択し、Enterキーを押す。うまくいくと以下のメッセージがターミナルに表示される。

$  sudo dpkg-reconfigure tzdata
[sudo] gotoh のパスワード:

Current default time zone: 'Asia/Tokyo'
Local time is now:      Tue Apr  7 19:26:39 JST 2026.
Universal Time is now:  Tue Apr  7 10:26:39 UTC 2026.

dateコマンドの結果の末尾がJSTになっていたらタイムゾーンの設定の変更が成功である。

Manの日本語化_

オンラインマニュアル(Linuxのコマンドのマニュアル)を表示するコマンドmanのマニュアルを日本語化する。

現状は英語マニュアルになっている。確認する。ページ送りはEnterキーかスペースキー。manの終了はqキーを押す。

% man ls

日本語マニュアルをインストールする。

% sudo apt install -y manpages-ja manpages-ja-dev

確認する。ページ送りはEnterキーかスペースキー。manの終了はqキーを押す。

% man ls

GUIアプリケーションインストールの準備(Wayland)_

Linuxにおいて、GUIアプリケーション実現する仕組みにX Window SystemとWaylandというものがある。Ubuntu 24.04LTS以降はWaylandが標準になっているので、このページではWaylandを基盤として設定していく。

以下のコマンドでGUIで動くエディタであるgeditをインストールする(インストールするソフトウェアが多いので時間がかかる)。

% sudo apt update
% sudo apt install gedit xwayland -y

GUIアプリケーションで表示する日本語フォントをインストールする。

% sudo apt install fonts-ipafont fonts-noto -y

geditがインストールされていることを確認し、起動してみる。

% which gedit
/usr/bin/gedit (インストール先が表示されていればインストール成功)

% gedit & 

geditは別ウィンドウで起動するので、起動を確認したらgeditを終了する。

これでGUIアプリケーションインストール準備が終わった。

トラブルシューティング_

「sudo apt install パッケージ名」が失敗するとき_

Ubuntuではソフトウェアのインストールにパッケージ管理システムaptを使っています。aptは次の手順でインストールを実行します。

  1. 「sudo apt install パッケージ名」が実行されたとき、インストールを指定されたパッケージがダウンロード済みのパッケージ一覧にあるか確認する(パッケージ一覧は /var/lib/apt/lists以下にある)。
  2. パッケージ一覧にパッケージ名があれば、そこに記載されている情報に従いパッケージをダウンロードする。
  3. ダウンロードしたパッケージをインストールする。

パッケージのインストールに失敗するとき、以下の原因があり得ます。

  • a: パッケージ名がパッケージ一覧に含まれていない
    • a-1: リポジトリ(パッケージの配布元)には、パッケージが存在するが、ダウンロード済みのパッケージ一覧に含まれていない(ダウンロード済みのパッケージ一覧が古い)
    • a-2: リポジトリにもパッケージが存在しない
  • b: ダウンロード済みのパッケージ一覧に記載されているパッケージ情報とリポジトリのパッケージ情報が一致しない(ダウンロード済みのパッケージ一覧が古い)
  • c: 指定したパッケージのインストールに必要な他のインストール済みパッケージのバージョンが古い
  • d: 指定したパッケージと競合するパッケージがすでにインストール済みであり、当該パッケージを自動的に削除できない
  • e: ネットワークにつながっていない。

上記のa-1とbが原因の場合、ダウンロード済みパッケージ一覧を最新にすることで対応できます。以下のコマンドを実行してください。

% sudo apt update

上記のcが原因の場合、インストール済みのパッケージを最新にすることで対応できます(対応できることが多いです)。以下のコマンドをじっこうしてください。

% sudo apt update
% sudo apt upgrade -y

上記のa-2が原因かどうかは、インストールしたいパッケージがそもそも存在するかどうかを確認する必要があります。以下のコマンド名でパッケージを検索し、存在しなければa-2が原因です。適切なパッケージ名を検索エンジンなどで調べるか、別の方法でほしいソフトウェアをインストールする必要があります。

% apt search パッケージ名

(実行例)
% apt search texlive-latex-extra
ソート中... 完了
全文検索... 完了  
debiandoc-sgml/focal 1.2.32-2 all
  DebianDoc SGML DTD および整形用ツール

pandoc/focal 2.5-3build2 amd64
  general markup converter

rubber/focal 1.5.1-2 all
  automated system for building LaTeX documents

texlive-latex-extra/focal 2019.202000218-1 all
  TeX Live: LaTeX additional packages

texlive-latex-extra-doc/focal 2019.202000218-1 all
  TeX Live: Documentation files for texlive-latex-extra

原因dの場合の対処方法は個々の事例によって異なります。基本的にはエラーメッセージに従って試行錯誤するしかありません。たとえば、以下のようなエラーメッセージがでます。

% sudo apt upgrade -y
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれ ません。
以下のパッケージには満たせない依存関係があります:
emacs : 依存: emacs-gtk (>= 1:26.3) または
emacs-lucid (>= 1:26.3) しかし、インストールされていません または
emacs-nox (>= 1:26.3)
emacs-bin-common : 依存: emacs-common (= 1:26.3+1-1ubuntu2)
emacs-el : 依存: emacs-common (= 1:26.3+1-1ubuntu2)
E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください ( または解法を明示してください)。

原因eの場合は、そもそもネットワークに接続できていない可能性があります。以下のようなエラーメッセージが出る場合は、原因eを疑ってください。とりあえずは、Windows側でネットワークに接続できていることを確認し、その後、Ubuntuを再起動してみてください。

エラー:1 http://jp.archive.ubuntu.com/ubuntu focal-updates/main amd64 evince-common all 3.36.7-0ubuntu1
404 Not Found [IP: 160.26.2.187 80]
エラー:2 http://jp.archive.ubuntu.com/ubuntu focal-updates/main amd64 libevdocument3-4 amd64 3.36.7-0ubuntu1
404 Not Found [IP: 160.26.2.187 80]
エラー:3 http://jp.archive.ubuntu.com/ubuntu focal-updates/main amd64 libevview3-3 amd64 3.36.7-0ubuntu1
404 Not Found [IP: 160.26.2.187 80]
エラー:4 http://jp.archive.ubuntu.com/ubuntu focal-updates/main amd64 evince amd64 3.36.7-0ubuntu1
404 Not Found [IP: 160.26.2.187 80]
無視:5 http://jp.archive.ubuntu.com/ubuntu focal-updates/main amd64 ruby2.7 amd64 2.7.0-5ubuntu1.3
無視:6 http://jp.archive.ubuntu.com/ubuntu focal-updates/main amd64 libruby2.7 amd64 2.7.0-5ubuntu1.3
エラー:5 http://security.ubuntu.com/ubuntu focal-updates/main amd64 ruby2.7 amd64 2.7.0-5ubuntu1.3
404 Not Found [IP: 160.26.2.187 80]
エラー:6 http://security.ubuntu.com/ubuntu focal-updates/main amd64 libruby2.7 amd64 2.7.0-5ubuntu1.3
404 Not Found [IP: 160.26.2.187 80]
E: http://jp.archive.ubuntu.com/ubuntu/pool/main/e/evince/evince-common_3.36.7-0ubuntu1_all.deb の取得に失敗しました 404 Not Found [IP: 160.26.2.187 80]
E: http://jp.archive.ubuntu.com/ubuntu/pool/main/e/evince/libevdocument3-4_3.36.7-0ubuntu1_amd64.deb の取得に失敗しました 404 Not Found [IP: 160.26.2.187 80]
E: http://jp.archive.ubuntu.com/ubuntu/pool/main/e/evince/libevview3-3_3.36.7-0ubuntu1_amd64.deb の取得に失敗しました 404 Not Found [IP: 160.26.2.187 80]
E: http://jp.archive.ubuntu.com/ubuntu/pool/main/e/evince/evince_3.36.7-0ubuntu1_amd64.deb の取得に失敗しました 404 Not Found [IP: 160.26.2.187 80]
E: http://security.ubuntu.com/ubuntu/pool/main/r/ruby2.7/ruby2.7_2.7.0-5ubuntu1.3_amd64.deb の取得に失敗しました 404 Not Found [IP: 160.26.2.187 80]
E: http://security.ubuntu.com/ubuntu/pool/main/r/ruby2.7/libruby2.7_2.7.0-5ubuntu1.3_amd64.deb の取得に失敗しました 404 Not Found [IP: 160.26.2.187 80]
E: いくつかのアーカイブを取得できません。apt-get update を実行するか --fix-missing オプションを付けて試してみてください。

Windows上のWebブラウザ(Edgeなど)で http://jp.archive.ubuntu.com/ にアクセスできる場合は、Ubuntu上で名前解決できていない可能性があります。

以下のページを参考に名前解決のためにアクセスするDNSサーバの設定を変更します。

まず、/etc/wsl.confがあるか確認します。

%  ls /etc/wsl.conf
/etc/wsl.conf

% cat /etc/wsl.conf

[boot]
systemd=true

/etc/wsl.confに追記します。以下のコマンドを実行します。

% echo '[network]' | sudo tee -a /etc/wsl.conf
% echo 'generateResolvConf = false' | sudo tee -a /etc/wsl.conf

追記されていることを確認します。

% cat /etc/wsl.conf

[boot]
systemd=true
[network]
generateResolvConf = false

上記のように追記できていない場合は、利用できるエディタを使って正しく編集してください。Ubuntu標準のエディタとしてはnano, viなどがあります。

% sudo nano /etc/wsl.conf (nanoを使って編集する場合)
% sudo vi /etc/wsl.conf   (viを使って編集する場合)

続いて、DNSサーバのIPアドレスを設定しているファイル /etc/resolv.confを編集する。まず、存在するかどうか確認する。私の環境では/etc/resolv.confは自動生成されるため、以下のようにシンボリックリンク(別のファイルにリンクをはること)で作成されている。

% ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 20  6月  4 23:58 /etc/resolv.conf -> /mnt/wsl/resolv.conf

% cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.29.160.1

すでに存在するresolv.confを削除し、新たに作成する。

% sudo rm /etc/resolv.conf
% echo 'nameserver 8.8.8.8' | sudo tee /etc/resolv.conf
% cat /etc/resolv.conf
nameserver 8.8.8.8

Ubuntuを終了する。

% exit

Powershellを起動し、WSLを一度停止する。WSLを停止したら、Powershellを終了する。

% wsl --shutdown
% exit

Ubuntuを起動する。以下のようにDNSサーバが8.8.8.8になっていたら設定成功。

% resolvectl status
Global
         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: foreign
Current DNS Server: 8.8.8.8
       DNS Servers: 8.8.8.8

Link 2 (eth0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

アップデートしてみる。

% sudo apt update
% sudo apt upgrade -y

あるパッケージがインストールされているかどうか調べたい_

% apt list "パッケージ名/キーワード"

たとえば、mozcがインストールされているか調べたい場合は以下のように入力する。

% apt list "*mozc*"
一覧表示... 完了
emacs-mozc-bin/noble,now 2.28.4715.102+dfsg-2.2build7 amd64 [インストール済み、自動]
emacs-mozc/noble,now 2.28.4715.102+dfsg-2.2build7 amd64 [インストール済み]
fcitx-mozc-data/noble,now 2.28.4715.102+dfsg-2.2build7 all [インストール済み、自動]
fcitx-mozc/noble 2.28.4715.102+dfsg-2.2build7 amd64
fcitx5-mozc/noble,now 2.28.4715.102+dfsg-2.2build7 amd64 [インストール済み]
ibus-mozc/noble 2.28.4715.102+dfsg-2.2build7 amd64
mozc-data/noble,now 2.28.4715.102+dfsg-2.2build7 all [インストール済み、自動]
mozc-server/noble,now 2.28.4715.102+dfsg-2.2build7 amd64 [インストール済み、自動]
mozc-utils-gui/noble,now 2.28.4715.102+dfsg-2.2build7 amd64 [インストール済み、自動]
uim-mozc/noble 2.28.4715.102+dfsg-2.2build7 amd64

以下のコマンドでも調べられる。

% dpkg -l | grep パッケージ名/キーワード

% dpkg -l | grep mozc
ii  emacs-mozc                                     2.28.4715.102+dfsg-2.2build7             amd64        Mozc for Emacs
ii  emacs-mozc-bin                                 2.28.4715.102+dfsg-2.2build7             amd64        Helper module for emacs-mozc
ii  fcitx-mozc-data                                2.28.4715.102+dfsg-2.2build7             all          Mozc input method - data files for fcitx
ii  fcitx5-mozc:amd64                              2.28.4715.102+dfsg-2.2build7             amd64        Mozc engine for fcitx5 - Client of the Mozc input method
ii  mozc-data                                      2.28.4715.102+dfsg-2.2build7             all          Mozc input method - data files
ii  mozc-server                                    2.28.4715.102+dfsg-2.2build7             amd64        Server of the Mozc input method
ii  mozc-utils-gui                                 2.28.4715.102+dfsg-2.2build7             amd64        GUI utilities of the Mozc input method

戻る_