Windows 11でWindows Subsystems for Linux(WSL)を使ってUbuntuをインストールする

日付;2022/08/21(日)

今の職場で、32GBの物理メモリを積んだmouse K5というPC、そしてそれにインストールしたWIndows 11を使っている。そしてRNA-seqのデータ解析用には、fastqファイルの処理用にはmacbook pro 13 inch(early 2011)(MBP13)に入ったDebian 9を、その後の高次解析用にはRを使ってきた。しかし、このMBP13は気づいてればもはや10年以上も前のコンピューターになってしまう。通常の用途であるならば大丈夫であるが、ライブラリサイズの大きなデータを処理しようとすると、非常に長い時間が必要になることがわかった。これは以前から知っていたけど、いざ問題として直面してみると非常にマズいことがわかった。時間がかかりすぎて、仕事にならない場合があるわけだ。

そういうことで、これまマズいって言うことで、職場の新しいコンピューターを使ってみた。そしてちょっとGoogleで調べたら、というか、なぜWSLなんていうシステムにたどり着いたのか、なぜ実行してみようと思い至ったのかちょっと記憶にございませんが、WSLというシステムがとても使える優秀なシステムであることがわかった。

職場で新しいコンピューターがsingle cell RNA-seq(scRNA-seq)解析用に納入されてくる予定もあり、そのコンピューターにはUbuntuが入っていることもあり、Ubuntuに慣れる必要がある。そこで今回は、MBP13の代わりに個人テスト用として購入したmouse K5、Windows 11、そのWSLを使ってUbuntuを導入して見ようと思う。

コンピューターと事前準備

コンピューターMouse K5K5-i7CMLCB-WA
CPU; Core i7-10750H6 Cores, 12 Threads)
Memory; 64GB

wslを入れる前に、念の為にWindows 11を最新の状態にしておき、「設定」の検索のところで「Windows の機能の有効化または無効化」と入力して、Hyper-V、Linux用Windowsサブシステム、仮想マシンプラットフォームなどにチェックを入れて、再起動する。ここがちゃんと書かれてて良かった。ただし、職場のPCだと、これやっていないので、もしかしたらWindows11ならこういう設定をしなくてもOKなのかもしれない。

Windows Subsystems for Linuxを入れる

まずは管理者権限でターミナルを立ち上げて、以下を打ち込む。これで、WSLのバージョンがわかる。既定のバージョンは2だそうだ。これでOK。

wsl --status

次に、最も重要なのはwslをアップデートすることである。これを怠ると”WslRegisterDistribution failed with error: 0x800701bc”というエラーがでて、Linuxディストリビューションがインストールできたとしても起動できないので注意する必要がある。ただし、アップデートを忘れてしまってLinuxディストリビューションをインストールした後であっても、アップデートすれば起動できた。

wsl --update

次にインストールするLinuxディストリビューションを確認する。

wsl --online --list

次に目的のLinuxディストリビューションをインストールする。ここでは、今後使うことになるだろうUbuntu 20.04をインストールする。ちなみに、職場のコンピューターにはDebianがインストールされている。確かDebian 9だったと思う。すごく安定している良いディストリビューションだと思う。

wls --install -d ubuntu-20.04
実はwsl –updateするのを忘れていて、WslRegisterDistribution failed with error: 0x800701bcのエラーが出たが、Ubuntuのインストール後のアップデートでも問題なかった。

これで終了。すごく簡単。もはやデスクトップ版のLinuxなんかいらねぇんじゃねえかってくらい優秀である。それでいて、メモリもCPUもフル活用できる。便利としか言いようがない。尚、どうも使い終わったら単にソフトを閉じるのではなく、以下を流してちゃんとシャットダウンしたほうが良いような気がする。なんとなく。

wls --shutdown

WSLに割り当てるCPU、メモリ、スワップ領域を設定する。

まず、ユーザーのフォルダに行き、テキストファイルで以下の内容を記述し、ファイル名を「.wslconfig」として保存する。それでOK。今回はこのシステムでbayseq、STAR 2pass、fusioncatcherなどを使った解析を想定しているので、こんなに盛大に割り当てている。また、経験的にWindows 11はメモリが8GBあれば通常の作業に支障はなさそうだったので、wslを使っている間はWindows11には8GBで頑張ってもらうとしよう。

[wsl2]
memory=56GB
swap=128GB
processors=6

次に、いよいよwslのUbuntuを起動させ、以下のコマンドを打ち込んみ、メモリやスワップ領域がちゃんと割り当てられているか確認する。以上でwslのインストールは終了である。簡単だ。

cat /proc/meminfo

ユーザーフォルダの直下に.wslconfigを保存しておく。右のエクスプローラーのところにちゃんとLinuxと書かれたペンギンが居る。
ちなみにDebianだとこんな感じ。まぁDebianだからねって感じである。

テキストエディターをインストールする

実は自分、Vimもemacsも使えないという体たらくである。使えれば便利なのかもしれないし、端から見ればそっちのほうがイキれるし、なれたら作業もすごく早いのだろう。それにコマンドだってカーソル移動、入力、保存、戻る、閉じる、くらい覚えれば良いことだろうし、Googleに聞けばすぐに覚えることができるだろう。それでもそんなセンスのない大昔の遺物みたいなソフトに時間を割きたくない。今はグラフィカルな物、例えばATOM、Visual Studio Codeなんかがある。そっちを使いたい。これらはコーディングには良いが「ちょっとしたコピペ」程度では必要ない。ということで、GNU標準のgeditをインストールしようと思う。

Ubuntuはaptが採用されているので、それを使ってインストールする。

sudo apt update
sudo apt search gedit | sort
sudo apt install gedit

これでOK。Windows 11(というかWSLバージョン2から??)ではこういうGUIのソフトも使える。もちろん、WSLで入れたUbuntuにVisual Studio Codeも、Google Chrome(google-chrome-stable)もインストールして、GUIソフトとして使える。ここでは入れないが、職場ではこれらはDebian@WSLのもとで使っている。

これで、例えば次のようなコマンドが動くようになる。

gedit .bashrc

次の機会では、RNA-seq用のソフトで、特に個人的によく使うものをインストールしたいと思う。