(付録(仮)) WSLでUbuntuをインストールする
Windows上でLinuxを使うためにWSLのUbuntuをインストールする手順を紹介します。
- WSLでUbuntuをインストール
- zshを普段遣いのshellにする
- sheldonでzshをパワーアップ
- rangerで快適なターミナルライフ
- Ubuntuでも最新のneovimを
WSLでUbuntuをインストール
スタートメニューの検索窓をつかって、管理者モードでPowerShellを起動します。
powershellから次のコマンドを実行します。
wsl --install
しばらくダウンロードとインストール作業が続き、終了すると新しいユーザー名とパスワードを尋ねられるので、これはWindowsのアカウントとは関係がないので、好きなものを決めて入力すればOKです。
アップデート作業
アカウントが出来たら、まずは、システムのアップグレードをしておきます。
データベースをアップデートします。
sudo apt update
実際にパッケージをアップグレードします。何をアップグレードするかの一覧等のメッセージがでて、実際にアップグレードをするか聞かれるので、メッセージに目を通して、y
を入力しましょう。
sudo apt upgrade
Ubuntuでのアップデート作業はこの2つのコマンドをこの順で発行すればOKです。普段も適当に実行して最新のものにしましょう。
WSLの終了とタスクバーにピン留め
WSLはexit
コマンドで終了(ログアウト)できます。作業が終わったら、Ubuntuからログアウトしてみましょう。
次にWSLを起動するときは、スタートメニューからUbuntuというアプリを選択すればOKです。
実際には、スタートメニューからUbuntuのアイコンを見つけ、アプリのメニューからタスクバーにピン留めするを選択して、タスクバーからアクセスできるようにしておけば、いつでもタスクバーから起動できるようになります。
Ubuntuのトラブルを防ぐ必須パッケージ
WSLのUbuntuにインストールされているパッケージは最低限のものしか入っていません。
ここで、Ubuntuのパッケージのみをインストールして利用する場合には、Ubuntuのシステムが依存関係を考慮してそのパッケージに必要となるパッケージも自動でインストールしてくれる仕組みになっているのでなんの問題もありません。
しかし一方で、後で紹介するように、Ubuntuのシステム以外のものを独自にインストールして利用する場合、例えば、最新のNeovimであったり、Neovimが自動的にインストールするプラグインであったりは、自動的に依存関係を解決してくれません。なので、必要なものがない!というエラーが出ることがしばしばあります。
そこで、以降で紹介するものをインストールする際にエラーが出ないよう、事前に必要なパッケージをインストールしておきましょう。
はっきり言って、このパッケージインストールは超重要事項です。忘れずに今すぐインストールしましょう。少し多めですが、コピペして実行でOKです!
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のディストリビューションを確認できます。
wsl -l -v
ubuntuを終了したい場合、wslの以下のコマンドで行えます。
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コマンドを実行しましょう。
wsl --unregister ubuntu
そして、その後、念の為、Ubuntuが削除できているかwsl -l -v
コマンドで再度確認してください。
zshを普段遣いのshellにする
zshをUbuntuのリポジトリから以下のコマンドでインストールします。
sudo apt install zsh
設定の雛形
zshコマンドを実行しましょう。
zsh
zshをはじめて起動すると、~/.zshrc
のひな型を作るメニューがでるので、2を選択します。
chshコマンドでデフォルトシェルを変更
次のコマンドを実行してデフォルトシェルをzshに切り替えます。確認のためパスワードを聞かれるので入力しましょう。
chsh -s /usr/bin/zsh
以上で、zshへの切り替え作業は終了です。
ここで、一旦、Ubuntuからログアウトし、もう一度、タスクバーのUbuntuアイコンからログインしましょう。
環境変数PATHを設定
~/.zhsrc
でPATH等の環境変数を設定します。nano
等のエディタで作業します。
nano ~/.zshrc
zshでは、環境変数PATHと同時にpathというシェル変数が使えます。
ここでは、次に使うsheldon
の為に、~/.local/bin
を変数pathに入れ、環境変数EDITORを設定しておきましょう。
# pathの追加
path=(~/.local/bin
$path
)
# 環境変数
export EDITOR=vim
sheldonでzshをパワーアップ
sheldonは、zshのプラグインマネージャです。
以下のコマンドでプレビルドのバイナリをダウンロードしてインストールします。
curl --proto '=https' -fLsS https://rossmacarthur.github.io/install/crate.sh \
| bash -s -- --repo rossmacarthur/sheldon --to ~/.local/bin
インストール出来たらexec zsh
でzshを再起動しましょう。
sheldonの設定ファイル
インストールできたら、sheldonのコマンドを使って設定ファイルのひな型を作成します。
sheldon init --shell zsh
次に、sheldonのコマンドを使って設定ファイルを編集します。このコマンドを実行すると、環境変数EDITORに設定されたエディタで設定ファイルが開かれます。
sheldon edit
[plugins]
の下に以下の3つのプラグインを追加しましょう。
[plugins]
[plugins.zsh-syntax-highlighting]
github = "zsh-users/zsh-syntax-highlighting"
[plugins.zsh-autosuggestions]
github = "zsh-users/zsh-autosuggestions"
[plugins.powerlevel10k]
github = "romkatv/powerlevel10k"
書き込む場所は以下を参考にしましょう。
追加するプラグインは定番のもので、その詳細は以下のとおりです。
.zshrcからsheldonを実行する設定
sheldonを機能させるには、次の1行をshellの起動時に実行します。
そこでこれを、~/.zshrc
に書き込みます。
eval "$(sheldon source)"
書き込む場所は以下を参考にしましょう。
ファイルを編集したら、exec zsh
で zsh を再起動します。
再起動されると、sheldonが自動でプラグインをダウンロードしてインストールします。
お洒落なプロンプトpowerlevel10k
powerlevel10k
プラグインが初めて読み込まれると、以下のようなプロンプトの設定モードになり、質問に答える形でお洒落なプロンプトを作成することが出来るようになっています。
驚かずに、メッセージと指示を見ながら、y
やn
を適当に答えていきましょう。
また、ここでは、Windowsのターミナルアプリの設定によって使えるフォントが異なるため、アイコンフォント等が使えない場合がありますので、この段階では気にせず、見やすいシンプルなものを選択してプロンプトを構成しておきましょう。後で何度でもやり直しが出来ます。
いつでも好きなだけやり直せます
この設定は、次のコマンドを実行することで何度でもやり直しが出来ます。
p10k configure
ターミナルの設定をした後等、時間が有る時に何度でも気に入る組み合わせを試せるので安心しましょう。
尚、p10kプロンプトを設定すると、もともと設定していたプロンプトの設定が不要になるので、該当部分をコメントアウトか消去します。以下を参考にしてください。
# Set up the prompt
#autoload -Uz promptinit
#promptinit
#prompt adam1
rangerで快適なターミナルライフ
ターミナル上の定番ファイラーです。
Windowsのエクスプローラーのように、ディレクトリ移動やファイル操作を行うTUIプログラムです。
インストール
Ubuntuでは以下のパッケージをインストールします。
sudo apt install ranger highlight
おすすめ設定
まずは、rangerに設定ファイルのひな型を準備してもらいます。下記のコマンドを実行しましょう。
ranger --copy-config=all
設定ファイルが~/.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の本家から最新版をインストールする方法をココで紹介します。
neovimのページには、いろいろなプラットホームに直接neovimをユーザー領域にインストールする方法が解説されています。Linuxに関してもUbunbuをはじめ有名なディストリビューションについての解説がありますが、そのなかでappimage
を使った方法を採用します。この方法は、Ubuntuで利用できるバイナリファイルを一つダウンロードして、これを利用するだけの簡単なものです。
指示に従ってcurlを使ってバイナリファイルをダウンロードします。
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.appimage
利用の仕方は、これに実行権限付けを付けて実行するだけ。なので、pathの通ったディレクトリにnvimとリネームして入れておけば良いです。以下は、chmod
コマンドで実行権限をつけて、実行できることを確認するためのコマンドです。
chmod u+x nvim-linux-x86_64.appimage
./nvim-linux-x86_64.appimage
このあと、pathの通っている例えば、~/.local/bin
などに入れてあげましょう。
mv nvim-linux-x86_64.appimage ~/.local/bin/nvim
neovimの設定
neovimは便利な初期設定をした状態の設定を配布している定番サイトが幾つかあります。
また、個人の設定をGitHubで管理しているところもあります。以下に私のリポジトリをリンクします。
うちでは、neovim内で日本語入力のためにskkeletonを使っています。そのあたりの日本語入力環境の参考にしてください。
最後に
この記事は、Bloggerで書いた記事をZennように書き直したものです。
今回は、WSLでUbuntuを使えるようにする点を重視し、お洒落度は落としたのですが、Bloggerでは、見た目のお洒落さを重視するために、Windowsターミナルでアイコンフォントを使えるようにする方法や、p10kのプロンプトコンフィグに関しては、Bloggerの方がスクリーンショットが盛り沢山になっています。お洒落ターミナルが気になる人は(多分みんな気になりますよね)Bloggerの記事も覗いてみてください。
さて、こっちのZennの記事は次のような気分で書き始めました。
Windows使いに対するWSLの導入説明文書はどの開発環境の構築文書であっても、だいたい必須になります。私もHaskellの本を書いてみようと思っているのですが、実際にそれらを動かすベースとしてWSL環境の説明が必要になりそうなので、この記事を先に作っておいて後でコレを、本の付録部分につけようかと思っています。 そこで、元記事からいらなさそうな派手な情報を省き、トラブルを減らすために付け加えたほうが良さそうな情報を加えてリファインしました。
まぁ、、なんにせよ、Haskellの初心者向けの本(私自身の勉強も兼ねて)が、上手に書けたら良いなぁと思っています。
Discussion