🐣

(付録(仮)) WSLでUbuntuをインストールする

2025/02/19に公開

Windows上でLinuxを使うためにWSLのUbuntuをインストールする手順を紹介します。

  1. WSLでUbuntuをインストール
  2. zshを普段遣いのshellにする
  3. sheldonでzshをパワーアップ
  4. rangerで快適なターミナルライフ
  5. Ubuntuでも最新のneovimを

WSLでUbuntuをインストール

スタートメニューの検索窓をつかって、管理者モードでPowerShellを起動します。

powershellから次のコマンドを実行します。

prompt
wsl --install

しばらくダウンロードとインストール作業が続き、終了すると新しいユーザー名とパスワードを尋ねられるので、これはWindowsのアカウントとは関係がないので、好きなものを決めて入力すればOKです。

アップデート作業

アカウントが出来たら、まずは、システムのアップグレードをしておきます。

データベースをアップデートします。

prompt
sudo apt update

実際にパッケージをアップグレードします。何をアップグレードするかの一覧等のメッセージがでて、実際にアップグレードをするか聞かれるので、メッセージに目を通して、yを入力しましょう。

prompt
sudo apt upgrade

Ubuntuでのアップデート作業はこの2つのコマンドをこの順で発行すればOKです。普段も適当に実行して最新のものにしましょう。

WSLの終了とタスクバーにピン留め

WSLはexitコマンドで終了(ログアウト)できます。作業が終わったら、Ubuntuからログアウトしてみましょう。

次にWSLを起動するときは、スタートメニューからUbuntuというアプリを選択すればOKです。

実際には、スタートメニューからUbuntuのアイコンを見つけ、アプリのメニューからタスクバーにピン留めするを選択して、タスクバーからアクセスできるようにしておけば、いつでもタスクバーから起動できるようになります。

Ubuntuのトラブルを防ぐ必須パッケージ

WSLのUbuntuにインストールされているパッケージは最低限のものしか入っていません。

ここで、Ubuntuのパッケージのみをインストールして利用する場合には、Ubuntuのシステムが依存関係を考慮してそのパッケージに必要となるパッケージも自動でインストールしてくれる仕組みになっているのでなんの問題もありません。

しかし一方で、後で紹介するように、Ubuntuのシステム以外のものを独自にインストールして利用する場合、例えば、最新のNeovimであったり、Neovimが自動的にインストールするプラグインであったりは、自動的に依存関係を解決してくれません。なので、必要なものがない!というエラーが出ることがしばしばあります。

そこで、以降で紹介するものをインストールする際にエラーが出ないよう、事前に必要なパッケージをインストールしておきましょう。

はっきり言って、このパッケージインストールは超重要事項です。忘れずに今すぐインストールしましょう。少し多めですが、コピペして実行でOKです!

prompt
sudo apt install build-essential unzip ripgrep curl libffi-dev libffi8ubuntu1 libgmp-dev libgmp10 libncurses-dev fzf libfuse-dev

WSLのメンテナンス

WSLは、Windows Subsystem for Linuxの略で、Windowsの上でWSLが動いて、その中にUbuntuが動いている感じです。

WSL自体は、Ubuntuからは操作できません。
Powershellから操作するということを忘れないようにしましょう。

以下のコマンドでwslのディストリビューションを確認できます。

prompt
wsl -l -v

ubuntuを終了したい場合、wslの以下のコマンドで行えます。

prompt
wsl --shutdown

アンインストール(環境の作り直し)

WSLをしばらく使わなくなって、消してしまいたいとか、初めから環境を作り直したいという場合は、一旦、WSL上のUbuntuをアンインストールして、再び、インストールすればOKです。

まずは、WindowsのメニューからUbuntuアプリを検索して、そのメニューから「アンインストール」を選択するとWindowsのアプリとしてのUbuntuが削除がされます。

但し、Ubuntuの削除に関しては不安定な事があり、管理者用のPowerShellを立ち上げ、wsl -l -vコマンドを実行して、必ずWSLの状態を確認しましょう。


Ubuntuが消えていない場合

スクリーンショットのようにSTATEの部分がStoppedとなっていてるだけで、Ubuntuの行自体が存在していることがあります。つまり、Windowsのメニューからは既にUbuntuは削除されていて、選択することが出来ず、表面上は削除されたように見えるのですが、実は、この状態では、Ubuntuのデータ自体がシステム内に残っている状態です。

そして、この状態でUbuntuの再インストールすると元のデータと混在することになりトラブルになります。

尚、このように、アプリのメニューからアンインストールを行った場合に、必ず起こるわけではありません。普通にデータが綺麗に消える場合もあります。ですから、アンインストール後、Windowsの再起動も行なって、それから、管理者権限のPowerShellからwsl -l -vコマンドを実行して、Ubuntuが削除されているかそうでないかを必ず確認してください。

Ubuntuの削除が正常に行われた場合には、以下のように、WSLに登録されているディストリビューションが無い旨が出力されます。


Ubuntuが削除できた場合

しかし実際には、上手く削除できない場合でも、コマンドで削除できるので慌てなくても大丈夫です。

削除できていないことを確認したら、落ち着いて、管理者権限のPowserShellから、以下のwslコマンドを実行しましょう。

prompt
wsl --unregister ubuntu

そして、その後、念の為、Ubuntuが削除できているかwsl -l -vコマンドで再度確認してください。

zshを普段遣いのshellにする

zshをUbuntuのリポジトリから以下のコマンドでインストールします。

prompt
sudo apt install zsh

設定の雛形

zshコマンドを実行しましょう。

prompt
zsh

zshをはじめて起動すると、~/.zshrcのひな型を作るメニューがでるので、2を選択します。

chshコマンドでデフォルトシェルを変更

次のコマンドを実行してデフォルトシェルをzshに切り替えます。確認のためパスワードを聞かれるので入力しましょう。

prompt
chsh -s /usr/bin/zsh

以上で、zshへの切り替え作業は終了です。

ここで、一旦、Ubuntuからログアウトし、もう一度、タスクバーのUbuntuアイコンからログインしましょう。

環境変数PATHを設定

~/.zhsrcでPATH等の環境変数を設定します。nano等のエディタで作業します。

prompt
nano ~/.zshrc

zshでは、環境変数PATHと同時にpathというシェル変数が使えます。

ここでは、次に使うsheldonの為に、~/.local/binを変数pathに入れ、環境変数EDITORを設定しておきましょう。

~/.zshrc
# pathの追加
path=(~/.local/bin
      $path
      )

# 環境変数
export EDITOR=vim

sheldonでzshをパワーアップ

sheldonは、zshのプラグインマネージャです。

https://github.com/rossmacarthur/sheldon

以下のコマンドでプレビルドのバイナリをダウンロードしてインストールします。

prompt
curl --proto '=https' -fLsS https://rossmacarthur.github.io/install/crate.sh \
    | bash -s -- --repo rossmacarthur/sheldon --to ~/.local/bin

インストール出来たらexec zshでzshを再起動しましょう。

sheldonの設定ファイル

インストールできたら、sheldonのコマンドを使って設定ファイルのひな型を作成します。

prompt
sheldon init --shell zsh

次に、sheldonのコマンドを使って設定ファイルを編集します。このコマンドを実行すると、環境変数EDITORに設定されたエディタで設定ファイルが開かれます。

prompt
sheldon edit

[plugins]の下に以下の3つのプラグインを追加しましょう。

~/.config/sheldon/plugins.tomlに追加
[plugins]

[plugins.zsh-syntax-highlighting]
github = "zsh-users/zsh-syntax-highlighting"

[plugins.zsh-autosuggestions]
github = "zsh-users/zsh-autosuggestions"

[plugins.powerlevel10k]
github = "romkatv/powerlevel10k"

書き込む場所は以下を参考にしましょう。

追加するプラグインは定番のもので、その詳細は以下のとおりです。

https://github.com/zsh-users/zsh-syntax-highlighting

https://github.com/zsh-users/zsh-autosuggestions

https://github.com/romkatv/powerlevel10k

.zshrcからsheldonを実行する設定

sheldonを機能させるには、次の1行をshellの起動時に実行します。
そこでこれを、~/.zshrcに書き込みます。

~/.zshrcに追加
eval "$(sheldon source)"

書き込む場所は以下を参考にしましょう。

ファイルを編集したら、exec zshで zsh を再起動します。

再起動されると、sheldonが自動でプラグインをダウンロードしてインストールします。

お洒落なプロンプトpowerlevel10k

powerlevel10kプラグインが初めて読み込まれると、以下のようなプロンプトの設定モードになり、質問に答える形でお洒落なプロンプトを作成することが出来るようになっています。

驚かずに、メッセージと指示を見ながら、ynを適当に答えていきましょう。

また、ここでは、Windowsのターミナルアプリの設定によって使えるフォントが異なるため、アイコンフォント等が使えない場合がありますので、この段階では気にせず、見やすいシンプルなものを選択してプロンプトを構成しておきましょう。後で何度でもやり直しが出来ます。

いつでも好きなだけやり直せます

この設定は、次のコマンドを実行することで何度でもやり直しが出来ます。

prompt
p10k configure

ターミナルの設定をした後等、時間が有る時に何度でも気に入る組み合わせを試せるので安心しましょう。

尚、p10kプロンプトを設定すると、もともと設定していたプロンプトの設定が不要になるので、該当部分をコメントアウトか消去します。以下を参考にしてください。

~/.zshrc
# Set up the prompt

#autoload -Uz promptinit
#promptinit
#prompt adam1

rangerで快適なターミナルライフ

ターミナル上の定番ファイラーです。

https://ranger.github.io/

Windowsのエクスプローラーのように、ディレクトリ移動やファイル操作を行うTUIプログラムです。

インストール

Ubuntuでは以下のパッケージをインストールします。

prompt
sudo apt install ranger highlight

おすすめ設定

まずは、rangerに設定ファイルのひな型を準備してもらいます。下記のコマンドを実行しましょう。

prompt
ranger --copy-config=all

設定ファイルが~/.config/ranger/rc.confに作成されるので、以下の編集を行います。

~/.config/ranger/rc.confの該当箇所
...
# Show hidden files? You can toggle this by typing 'zh'
set show_hidden true
...


# Draw borders around columns?
set draw_borders both
...

# Which colorscheme to use?  These colorschemes are available by default:
# default, jungle, snow, solarized
set colorscheme jungle
...

操作の基本

jklmキーでカーソルが動かせます。操作はある程度直感的なので、シェル上でディレクトリ移動するよりも快適です。ファイルでカーソルか右で、関連付けられたアプリで開きます。テキスト等ならEDITORが示すエディタです。

shift+s でシェルへ

その中でも、初めに覚えておくべきキーはshift+sです。このキー操作でrangerのカレントディレクトリのシェルが開きます。そして、シェルをexitで終了するとrangerへ戻ります。

ドットファイルのトグルは Ctrl+h

設定で表示、非表示のデフォルトを決めれますが、キー操作で表示のトグルができます。

i でプレビュー

エディタでファイルを開かずに i キーでファイルの内容をプレビューできます。プレビューを終了してrangerに戻るのも i キーです。

Ubuntuでも最新版のNeovimを

Ubuntuでパッケージされているneovimはバージョンが少し古いものが採用されています。

一方、neovimはプラグイン開発が盛んで人気の有るプラグインを使うためには最新のneovimが要求されることが多いです。そのため、Ubuntuのリポジトリにあるneovimではそれらのプラグインを使うことが出来ません

そこで、neovimの本家から最新版をインストールする方法をココで紹介します。

https://github.com/neovim/neovim/blob/master/INSTALL.md#appimage-universal-linux-package

neovimのページには、いろいろなプラットホームに直接neovimをユーザー領域にインストールする方法が解説されています。Linuxに関してもUbunbuをはじめ有名なディストリビューションについての解説がありますが、そのなかでappimageを使った方法を採用します。この方法は、Ubuntuで利用できるバイナリファイルを一つダウンロードして、これを利用するだけの簡単なものです。

指示に従ってcurlを使ってバイナリファイルをダウンロードします。

prompt
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.appimage

利用の仕方は、これに実行権限付けを付けて実行するだけ。なので、pathの通ったディレクトリにnvimとリネームして入れておけば良いです。以下は、chmodコマンドで実行権限をつけて、実行できることを確認するためのコマンドです。

pormpt
chmod u+x nvim-linux-x86_64.appimage
./nvim-linux-x86_64.appimage

このあと、pathの通っている例えば、~/.local/binなどに入れてあげましょう。

prompt
mv nvim-linux-x86_64.appimage ~/.local/bin/nvim

neovimの設定

neovimは便利な初期設定をした状態の設定を配布している定番サイトが幾つかあります。

また、個人の設定をGitHubで管理しているところもあります。以下に私のリポジトリをリンクします。

https://github.com/syunsuke/nvim-config

うちでは、neovim内で日本語入力のためにskkeletonを使っています。そのあたりの日本語入力環境の参考にしてください。

最後に

この記事は、Bloggerで書いた記事をZennように書き直したものです。

https://neko-mac.blogspot.com/2023/05/windowsatcoder.html

今回は、WSLでUbuntuを使えるようにする点を重視し、お洒落度は落としたのですが、Bloggerでは、見た目のお洒落さを重視するために、Windowsターミナルでアイコンフォントを使えるようにする方法や、p10kのプロンプトコンフィグに関しては、Bloggerの方がスクリーンショットが盛り沢山になっています。お洒落ターミナルが気になる人は(多分みんな気になりますよね)Bloggerの記事も覗いてみてください。

さて、こっちのZennの記事は次のような気分で書き始めました。

Windows使いに対するWSLの導入説明文書はどの開発環境の構築文書であっても、だいたい必須になります。私もHaskellの本を書いてみようと思っているのですが、実際にそれらを動かすベースとしてWSL環境の説明が必要になりそうなので、この記事を先に作っておいて後でコレを、本の付録部分につけようかと思っています。 そこで、元記事からいらなさそうな派手な情報を省き、トラブルを減らすために付け加えたほうが良さそうな情報を加えてリファインしました。

まぁ、、なんにせよ、Haskellの初心者向けの本(私自身の勉強も兼ねて)が、上手に書けたら良いなぁと思っています。

Discussion