はのちゃ爆発

はのちゃが技術ネタとか日常のこととかを書いてます。

WSL2 で fish shell を使っていると VS Code Remote Development が動かなくなるようです

WSL2 環境に fish を入れ、かつログインシェルにしていると VS Code Remote Development 拡張の初期化処理に失敗して Remote Development が動かないバグがあるようです。 fish 以外にも zsh でも死ぬらしい。

関連 Issue が立っているのでそのうち修正される気はする。

github.com

取り急ぎ動くようにするには

旧バージョンの Remove Development 拡張がどこかに転がってればよかったのですが、残念ながらそれらしきものが見当たらず。 bash 以外のシェルを使っているのが問題なので、一旦ログインシェルを bash に戻すのが一番簡単な気がします。

$ chsh でログインシェルを /bin/bash に切り替えると無事 Remote Development が動くようになるはず。

一刻も早く修正されることを祈りましょう…

2019/07/09 22:08 追記

bash に戻しても動かねーYO!ってコメントが Issue に追加されてるので、上記のシェル変更操作をしても直らない可能性があります。 直らなかった方は Issue に状況を書き込むと早く直してくれる、はず。

2019/07/10 00:22 更に追記

旧バージョンの extension が取れないと言ってたんですが、あったみたいです。

こちらのコメント を参照。

WSL2 + VS Code Remote Development がいい感じだった

前回の記事で WSL2 を雑にお試ししましたが、今回は VS Code の Remote Development と組み合わせて使ってみます。

hanocha.hateblo.jp

VS Code の Remote Development の公式ドキュメントはこちら。

code.visualstudio.com

雑に言うと「VM や WSL 環境上の Linux 上にあるファイルをローカルにあるのと同じように VS Code 上で閲覧・編集できる機能」です。 普通のVM + SSH や Docker でも利用可能みたいですがそちらは試してないのでなんとも。

もしかしたら VM で動かしたほうが早かったり…いや、さすがにそんなことはないか…

続きを読む

WSL2 が来たので試しに入れて雑な性能測定をした

お久しぶりです、はのちゃです。昨年末のはの飯アドベントカレンダーをやって力尽きていたようです。

先日待望の Windows Subsystem for Linux 2 (WSL2) プレビュー版が出た ので、早速試してみました。 果たして Windows 上で快適な Ruby 開発を行うという夢は叶うのでしょうか。

前準備

なにはともあれ「Windows の設定」を開きます。開いたら「更新とセキュリティ」に行きます。

f:id:hano_tea:20190616181104j:plain

「更新とセキュリティ」が開いたら一番下、 Windows Insider Program をクリック。

f:id:hano_tea:20190616200857j:plain

この辺はどんな画面になるかが人によって変わると思うので参考程度にどうぞ。

上記のような「Insider Preview ビルドを受け取る」という表示になっていたら「開始する」ボタンを押して、 Insider Preview を受け取る設定をします。 途中で「どのようなコンテンツの~」というような選択肢が出てきたら「Windows のアクティブな開発」を選びます。後で変えられるので違うの選んでも平気ですが。

設定が正しく終わったら以下の画像のようになるはず。

f:id:hano_tea:20190616201421j:plain

ポイントは「新しいビルドを取得する頻度はどの程度を希望されますか?」のところが「ファースト」になっていること。 選択肢としては「スロー」か「ファースト」の二択ですが、「ファースト」にしないと最新のプレビューが降ってこないので注意しましょう。

(「ファストリング」と「スローリング」の2つだった気がするので「ファースト」じゃない気がするんですが…)

あとは放置してたらそのうち最新の Insider Preview のダウンロードとインストールが始まるはずです。 なかなか始まらないときは同じ「更新とセキュリティ」画面内の Windows Update を開いて、更新をチェックするとダウンロードが始まるかも。

WSL2 のインストール

公式ドキュメントがわかりやすいので、基本的には以下のページを見ながらやれば特に迷わないはず。

docs.microsoft.com

WSL のインストールと任意のディストリビューションの入手

WSL1 をすでに導入済みの人はスキップして大丈夫です。 WSL2 で初めて導入する人は以下のガイドに従って WSL そのものと、お好きな Linux ディストリビューションを入手してください。

docs.microsoft.com

WSL2 のセットアップ

Powershell を管理者として開き、以下のコマンドを入力します。

# Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

再起動を求められたら指示に従います。

WSL のバージョンを 2 に切り替える

WSL2 のセットアップが済んだら、インストールした Linux の実行環境を WSL1 から WSL2 に切り替えます。 まず現在インストールされているディストリビューションの一覧を確認。

# wsl -l -v

自分の使いたいディストリビューションが表示されていること、及びその名前を確認します。名前はこのあとのバージョン切替時に必要になります。 名前がわかったら実際に切り替えます。変換は結構時間がかかるので気長に待ちましょう。

# wsl --set-version <変換したいディストリビューション名> 2

ついでにデフォルトの WSL バージョンを 2 に切り替えておいてもいいかもしれない。

# wsl --set-default-version 2

変換が終わったら再度 wsl -l -v して、変換したディストリビューションのバージョンが 2 になっていることを確認しましょう。

確認も済んだらあとは起動するだけ。簡単ですね。

で、実際どうなの?早いの?

問題は実際早くなってるのかどうか、です。特にディスク I/0 周り。体感では早くなってるんだけど…ということで雑に計測しました。

やり方は簡単、ある Rails アプリで vendor/bundle がない状態で $ time bundle install --path=vendor/bundle するだけ。 (本当は $ rails new とかで検証したかったんですが諸事情でうまく行かなかったのでこちらで)

ディスク I/O 以外にもいろいろな要素が絡んできてはしまいますが、体感できる部分が早くなってるかどうかの検証ぐらいにはなるでしょう。

というわけで結果。まずは WSL1 環境。

356.90user 349.00system 13:57.57elapsed 84%CPU (0avgtext+0avgdata 376356maxresident)k
0inputs+0outputs (0major+11128995minor)pagefaults 0swaps

なるほど 約 13 分bundle install すると一つ一つの gem のインストールでやや引っかかり、 nokogiri などは(普段から重いですが)しばらくピタッと動かなくなる程度には重いです。でも以前試したときよりはマシになってるような…

というわけで次、 WSL2 環境。

314.29user 37.95system 6:28.09elapsed 90%CPU (0avgtext+0avgdata 332868maxresident)k
0inputs+0outputs (457major+8152054minor)pagefaults 0swaps

まさかの 約 6分半 。実に半分以下。 実際コンソールの流れ方も WSL1 よりかなりスムーズで大半の gem はスルスル入っていきます。 nokogiri は流石に止まりますが…

ちなみに、今回計測はしていませんが、 RSpec とか回してもかなり速度差がある印象です。

注意事項とか

WSL2 は WSL1 よりもほぼ確実にサクサク動いてくれますが、 Windows - Linux を跨いだファイルアクセスは WSL1 よりも現状遅くなるということなので注意が必要です。

また、 WSL1 <-> WSL2 は相互に変換が可能…ですが、変換の際に若干挙動がおかしくなることがあったので、あまり気軽に変換処理をしないほうがいいかもしれません。 (変換も安定して動くわけでもなく、謎のエラーで落ちたと思ったら再度変換かけると成功するとかあったので)

はの飯アドベントカレンダー #25 12月編

はの飯アドベントカレンダー25日目、12月編です。遂に完結。

はの飯アドベントカレンダーの Adventar はこちら。

adventar.org

前回の記事はこちら。11月編です。

hanocha.hateblo.jp

続きを読む

はの飯アドベントカレンダー #24 11月編

はの飯アドベントカレンダー24日目、11月編です。

はの飯アドベントカレンダーの Adventar はこちら。

adventar.org

前回の記事はこちら。10月編です。

hanocha.hateblo.jp

続きを読む

キースイッチが可愛い話 & キースイッチを愛でるアプリの話

この記事は「自作キーボード #3 Advent Calendar 2018」23日目の記事です。

adventar.org

自作キーボードアドカレ #1, #2 もあるよ。

adventar.org

adventar.org

自作キーボード #3 Advent Calendar 2018 22日目の記事は takedahachio さんの「キーキャップ印字をデカールで。」でした。

デカールでデコるという発想はなかったので、なるほどそういう方法もあるのか…と興味深く読ませていただきました。 ちゃんとUVレジンでコーティングして剥げないようにしてるのが素晴らしいです。割とお手軽にできそうだしやってみたい…

キーキャップカスタマイズ界もいろいろな手法が出てきて面白いですね、皆すごいなぁ…


あ、最近はの飯カレンダーしか書いてないですがキースイッチ可愛い同好会会員番号3番(自称)の id:hano_tea ですこんにちは。

自キ界隈の他の方々のように精力的に活動しているわけでもなく未だ初心者の私が記事を書くなんて…という気持ちでいっぱいですが、キースイッチが可愛い話を書こうと思います。

続きを読む

はの飯アドベントカレンダー #23 10月編

はの飯アドベントカレンダー23日目、10月編です。

はの飯アドベントカレンダーの Adventar はこちら。

adventar.org

前回の記事はこちら。9月編です。

hanocha.hateblo.jp

飯は関係ありませんが自作キーボードアドカレの記事を書いたのでこちらもよろしければ。

hanocha.hateblo.jp

続きを読む