最近WSLに感動している。そんなわけ(?)で備忘録も兼ねてWSLのセットアップについて書きたいと思う。かなり雑ではあるがそこはご了承願いたい。
前置き
Debian GNU/Linux,SUSE,Kali Linux,UbuntuといろいろなディストリビューションがWSLに対応しているが、ここは一番利用者の多いUbuntuでやっていきたいと思う。
また、執筆日時当時の設定方法を記述しているため、古くなっている場合がある。そこはご了承願いたい。
WSLインストール
スタートからMicrosoft Storeを開き、Ubuntuと検索しインストール。
WSLセットアップ
インストール終わったらスタートから"Ubuntu"を選択するか、コマンドプロンプトやPowerShellにwsl
かubuntu
と打ち、Ubuntuを起動させる。初回起動時はユーザー名とパスワードを設定する必要があるのでそれをする。
とりあえずパッケージの更新をする。
sudo apt update sudo apt upgrade
日本語化
sudo apt install language-pack-ja-base language-pack-ja sudo update-locale LANG=ja_JP.UTF-8
ここで一回WSLを再起動する。
echo $LANG
してja_JP.UTF-8
が帰ってくれば日本語化は完了である。
manページの日本語化
また、manページも日本語化するのであれば、
sudo apt install -y manpages-ja manpages-ja-dev
でok。
時刻をJSTにする
しかし、この時点では時刻がJSTではないので、
sudo dpkg-reconfigure tzdata
上のコマンドで矢印キーだけで動かせる画面が出てくるので、順に"アジア"->"東京"をEnterで選択すればok。
Neovimインストール
宗教戦争になりかねない話だが、私はNeovimが好きである。なのでこの記事ではNeovimに関してしか扱わないが、vimは標準で入っているし、emacsはsudo apt install emacs
でインストールできると思うのでその辺はggるなりしていただきたい。
sudo apt install neovim python3-pip pip3 install neovim
dein.vimの導入
ここではVimのプラグインパッケージマネージャであるdein.vimを使うこととする。
これを参考にしてインストールすればよい。しかし、プラグインをいちいちinit.vimに書くのは嫌なのでtomlに書くことにした。書きかえたのが以下である。
if &compatible set nocompatible endif " Add the dein installation directory into runtimepath set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim if dein#load_state('~/.cache/dein') call dein#begin('~/.cache/dein') call dein#add('~/.cache/dein/repos/github.com/Shougo/dein.vim') let s:toml = '~/dein.toml' let s:lazy_toml = '~/dein_lazy.toml' call dein#load_toml(s:toml, {'lazy': 0}) call dein#load_toml(s:lazy_toml, {'lazy': 1}) call dein#end() call dein#save_state() endif filetype plugin indent on syntax enable if dein#check_install() call dein#install() endif
これで、~/dein.toml
にどんな言語でも使うプラグインを、~/dein_lazy.toml
に特定の言語向けのプラグインについて書いていけばよい。詳しいdeinのtomlの書き方はggっていただきたい。
ところで、dein.tomlとdein_lazy.tomlで分ける理由としては、必要なプラグインだけ読み込むようにして高速で起動できるようになるからだそうだ。
前者は起動した際、最初に読みこまれるが、後者はちょっとして読みこまれるらしい。
シンボリックリンクの作成
WSLでcd /mnt/c/
すればわかると思うが、WSLからWindowsのファイルシステムへのアクセスは可能である。
よって、OCamlやCrystalのようなWindowsに対応していない言語の開発ではWindowsのファイルシステム上でファイルを保持しておき、編集や実行はWSL上で行うということが可能である。
しかし、毎回、cd /mnt/c/…
やcd /mnt/d/…
するのは面倒なので、
ln -s /mnt/(任意のフォルダ) ~/(任意の英数字)
とやって、ホームディレクトリにシンボリックリンクを作る。
ちなみにWindowsからWSLのファイルシステムへのアクセスはファイルが破壊されるため、アクセス不可能になっているらしい(そもそも場所がわからない)。
おわりに
とまぁ私なりのWSLの環境構築をやってきたわけだが、結局はWSLが本物のLinuxに敵うはずはないと思っているのでLinux機が欲しくなった。