わすれっぽいきみえ

みらいのじぶんにやさしくしてやる

Windows10にWSL2を使ってUbuntuを入れてみた

前からやってみたかったので

https://www.geekfeed.co.jp/geekblog/wsl2-with-windows10-insider-preview-buildwww.geekfeed.co.jp

を参考にWindows10にUbuntuを入れた。

Windows10 Insider Previewビルドをインストール

上記記事に記載の方法とまったく同じ手順で入る。
ただし今入れるとバージョンが上記記事とは違って

C:\Users\kimik>ver

Microsoft Windows [Version 10.0.19041.21]

となる。

WSL2が動くようにWindowsの仮想化機能を有効化

これも上記記事と同じ手順を踏み、Powershell上で

PS C:\Users\kimik> Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
(再起動後)
PS C:\Users\kimik> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

を実行するところまでは同じ。

私の場合はMicrosoft Store上でインストールするUbuntuだけバージョン指定のないUbuntuを入れた。
Microsoft Store上でubuntuと検索すると3つくらい出てくる。

f:id:kimikimi714:20200209001755p:plain

画像を見てもらえばわかるように一番左のものをインストールした。といっても今のLTSは18.04で、そっちを選んだのと同じものがインストールされるようだった。実際にバージョン確認を行ったのが以下。

f:id:kimikimi714:20200209001823p:plain

これでインストール完了。

Microsoft Storeからインストールする手順を取ったとき、Ubuntuのデスクトップが立ち上がるのかなーと想像していたらUbuntuのターミナルが実行できるだけっぽいので、Macでコンソール立ち上げるのと感覚的には変わらないことがわかった。あと試しにgitコマンド打ってみたら apt-get するまでもなく初めから入っていて便利。昔はなかった記憶なので、時代は変わったんだなーと思った。

Windowsクリップボードを使ってUbuntuにペーストする

Ubuntuのターミナルからテキストをコピー → Windowsのアプリケーションにペースト』はできたが、『Windowsのテキストをクリップボードにコピー → クリップボードの内容をUbuntuのターミナルにペースト』がうまくいかなかった。通常 Ctrl + V でペーストするが、これはデフォルトではoffになっている。そこで

www.howtogeek.com

ここにしたがって、『Windowsのテキストをクリップボードにコピー → クリップボードの内容をUbuntuのターミナルにペースト』ができるようにする。

Ubuntuのターミナルのヘッダーの文字が何もないところで右クリックするとメニューが表示されるので、その一番下にある「プロパティ」をクリックする。

f:id:kimikimi714:20200209001923p:plain

すると「オプション」というタブが現れるので、その中の「Ctrl + Shift + C/V をコピー/貼り付けとして使用する」にチェックを入れる。これだけで『Windowsのテキストをクリップボードにコピー → クリップボードの内容をUbuntuのターミナルにペースト』ができるようになる。

f:id:kimikimi714:20200209001943p:plain

UbuntuからGitHubsshで接続できるようにする

初めからgitが使えるなら、GitHubに接続できるようにしておきたい。そこで

help.github.com

ここにある通りのことをやればUbuntuに一緒についてきたgitでGitHubにはいれるはずだと思ったので実行してみる。

~$ ssh-keygen -t rsa -b 4096 -C "your-own-email@example.com"
~$ ps aux | grep ssh # ssh-agentが立ち上がってるか確認したところ立ち上がってなかった
kimikim+    98  0.0  0.0  14856  1068 pts/0    S+   22:53   0:00 grep --color=auto ssh
~$ eval $(ssh-agent -s)
~$ ps aux | grep ssh
kimikim+   100  0.0  0.0  11304   320 ?        Ss   22:53   0:00 ssh-agent -s
kimikim+   102  0.0  0.0  14856  1084 pts/0    S+   22:53   0:00 grep --color=auto ssh
~$ ssh-add ~/.ssh/id_rsa
Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)

(このあと [Adding a new SSH key to your GitHub account](https://help.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account) にしたがってpub keyを登録)

~$ ssh -T git@github.com
Hi kimikimi714! You've successfully authenticated, but GitHub does not provide shell access.

普通に使えた。

ghq環境を整える

github.com

これがないと仕事できないレベルになってるので自分のPCにUbuntu環境を入れたんなら、そこにも同じように ghq を入れておきたい。なので、とりあえず Go を入れて、 ghq が動くようにする。

~$ wget https://dl.google.com/go/go1.13.7.linux-amd64.tar.gz # https://golang.org/dl/ から Latest Stable の go をダウンロード
--2020-02-08 23:52:07--  https://dl.google.com/go/go1.13.7.linux-amd64.tar.gz
Resolving dl.google.com (dl.google.com)... 172.217.175.14, 2404:6800:4004:81c::200e
Connecting to dl.google.com (dl.google.com)|172.217.175.14|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 120071076 (115M) [application/octet-stream]
Saving to: ‘go1.13.7.linux-amd64.tar.gz’

go1.13.7.linux-amd64.tar.gz   100%[=================================================>] 114.51M  8.98MB/s    in 12s

2020-02-08 23:52:20 (9.41 MB/s) - ‘go1.13.7.linux-amd64.tar.gz’ saved [120071076/120071076]

~$ sudo tar -C /usr/local -xzf go1.13.7.linux-amd64.tar.gz # 解凍
[sudo] password for kimikimi714:
~$ ls /usr/local/go/bin/ # 展開されたことを確認
go  gofmt
~$ export PATH=$PATH:/usr/local/go/bin # パスを通す
~$ go version # バージョン確認
go version go1.13.7 linux/amd64
~$ go get github.com/x-motemen/ghq # go get で ghq のインストール
~$ export PATH=$PATH:~/go/bin # ghq へのパスを通す
~$ git config --global ghq.root ~/go/src # ghq で git clone する時のパスを指定する
~$ cat ~/.gitconfig # 設定の確認
[ghq]
        root = /home/kimikimi714/go/src
~$ ghq get git@github.com:kimikimi714/config.git # 自分のリポジトリを試しにclone
     clone ssh://git@github.com/kimikimi714/config.git -> /home/kimikimi714/go/src/github.com/kimikimi714/config
       git clone --recursive ssh://git@github.com/kimikimi714/config.git /home/kimikimi714/go/src/github.com/kimikimi714/config
Cloning into '/home/kimikimi714/go/src/github.com/kimikimi714/config'...
remote: Enumerating objects: 28, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 367 (delta 10), reused 15 (delta 7), pack-reused 339
Receiving objects: 100% (367/367), 143.11 KiB | 400.00 KiB/s, done.
Resolving deltas: 100% (203/203), done.
~$ ls go/src/github.com/kimikimi714/ # 入ってるかどうか確認
config

できました~。

このあとやっておきたいこと

peco のインストールと設定やってない。Macではzshを使っていたが、原点回帰してbashに戻ろうかと考えている。

kimikimi714.hatenablog.com

ここで使った関数をbash向けにして書き込む。昔書いた config はそのまんまでは使えない想定でいる。

Windows本体とUbuntuとの間でフォルダ、ファイルの共有をしておきたい。

forest.watch.impress.co.jp

ググるとこういう記事が出てきた。まだちゃんと実践してないけど、まぁやれるなら早めにやっておきたい。ファイルシステムが異なるのだけ地味に気になる…。WindowsMac間でのファイル共有が面倒くさいこととか思い出すからファイルシステム変わるのあんまりやりたくないんだよな。

デスクトップの名前も変えておきたい。なんとなくデフォルトで使ってたが、この記事書くときにダサいなーと思ったので塗りつぶしてしまった。