目次
1.この記事は?
2.結論
3."wslgit"の紹介
4.経緯
5.まとめ
1.この記事は?
タイトルにある通り、wslgitを使おうとしたら意外な落とし穴にハマったので、その事例を共有する記事です。
半分くらい備忘録みたいな位置づけです。
Qiita初投稿なので読みづらいところがあるかもしれませんが、ご容赦ください。
まずはわかる方向けに結論・解決策を提示します。
「wslgit気になってる」「ナニソレオイシイノ?」な人は3."wslgit"の紹介以降から読んでいただき、その後2.結論に戻っていただくとわかりやすいと思います。
2.結論
タイトルを回収します。と言っても読んだ通りなのですが、
"wslgit"を使う場合、デフォルトディストリビューションのシェルはbashでなくてはいけません。
よって、デフォルトディストリビューションがalpineの場合は下記コマンドで解決します。
apk add bash
Ubuntuなどデフォルトシェルがbashなディストリビューションは何もしなくても使えるはずではあります。
私もつい先日まではUbuntuを使っていたため、ここは盲点でした。思いっきりハマりました。
これを解決するのに4時間費やしたこと、みんなにはナイショだよ...
一応shでもイケるはずなので、alpineでもハマりポイントにはならないはずなのですが。
私の手元ではshで動かせなかったので、上の対応が最短ルートとなります。
(多分環境変数とか設定するとできるのだろうと思いますがよくわからんです。教えてエロい人)
3."wslgit"の紹介
さて、ここまでなんの説明もなくwslgitのお話をしてきましたが、ここできちんとwslgitをご紹介します。
これはWindowsにおいてGitを使用する際、Git for WindowsをインストールしなくてもGitを使えるようにする小さなソフトウェアです。
GitHubにて公開されています。
実装としては、gitコマンドをWSLのデフォルトディストリビューションに転送してるイメージです。(多分)
その際、Windows ↔ WSLのパス表記の違いを一部吸収 (変換)してくれます。
詳しいところはReadmeを読んで下さい。その方が正確です。
WSL2にも対応済みですので安心して使えます。
私のようにWindows環境はあまり汚したくない方や、「WSLメインだけどたまにPowershellからGit使いたい」みたいな人にオススメです。
ただ、日本語の記事や比較的新しい記事が無いように見受けられたので、情報更新と事例共有を合わせて参考情報を増やす意味で筆を取りました。
記事制作段階(2022/4/12)で最終更新が20日前なので、継続的に更新されているプロジェクトなのではないでしょうか。
ということで、この後はこうなった経緯をつらつらと書き連ねて行きます。
この先はただの読み物です。お時間ある方はぜひお付き合いください。
4.経緯
私がWSLを使い始めたのは、ちょうどWSLが正式リリースされたタイミングからです。
その時はVPSへのSSH用ターミナルとして、あるいは「CLIでLinux触る俺かっこいい」に酔いしれるために使っていました。
VPSでは自前のメールサーバを運用したり、HPを作ったり、SSL証明書を自動更新したりしてました。
ただ、環境構築も安定すればサーバーを触る機会は減り、その後はしばらく触ったり触らなかったりとなりました。
そんな中、最近とある理由からLinuxを使う必要が出てきたのですが、特に迷いなくWSLを選択、また触り始めました。
また、Dockerも使いたかったためDocker Desktop for Windowsも入れました。
ただ、WSLのデフォルトディストリビューションがUbuntuなためか、Docker Desktopを起動するとUbuntuも起動されます。
このUbuntu、これまで適当に使っていたため、仮想ディスクイメージが10GBと巨大です...
メモリはゴリゴリ食われますし、なにより起動が遅い。
docker-desktopをデフォルトに設定することも考えましたが、これだとWindows側でGitが使えませんし、なによりなんか気持ち悪い。
サクッとSSHしたりGitしたりするためにもなにかしらのディストリビューションは欲しかったわけです。
そんなわけで、一旦Ubuntuイメージを保存しつつWSLの登録を解除し、軽量なLinuxをデフォルトディストリビューションにしようと思ったわけです。
ここで選択肢に上がるのが、軽量なことで有名なalpineです。
幸いなことにMicrosoft StoreにWSL用イメージがありましたので飛びつきました。
結果、これまで述べたようにwslgitの導入でコケたわけです。
alpineを使うのは初めてですし...しょうがない。
逆にQiita記事を投稿する良いきっかけを手に入れたと、前向きに捉えています。
まぁ、Docker Desktop for Windowsの一部有料化に伴い、最近のWinodows界隈では「脱・Docker Desktop」系の記事がよく見られるわけで... (検索するとQiitaとZennの記事がよく出てきます)
今構築中の環境は、もしかするとスマートではないかもしれませんが、Docker Desktopも個人利用は引き続き無料なのであまり関係ないですし。
Dockerに慣れていない私には便利なので、使う方向で環境構築しています。
このあたりの「とある理由」とか「構築中の環境」とかは、また改めて記事にしたいなぁという思いではいます。
作業メモがてらnotionに書き残しているので、Qiitaに持ってくるだけですしね。
5.まとめ
ということで、後半は事の経緯をざっくりとダラダラ書き殴りました。
ここまで読んでくださった方、ありがとうございます。
この記事は以上となります。
もしよければコメントを残していただけると私が喜びます。
冒頭でも書きましたが初投稿ですので、コメントをいただけるとモチベーションに繋がり、記事が増えていくかもしれません。
間違いの指摘やタイポなどありましたら、合わせてコメント頂けますと幸いです。
最後にもう一度繰り返しますが、wslgitを使う場合はデフォルトディストリビューションにbashを入れましょう。
そうすればWindows側からもgitコマンドが使えるようになります。
それでは皆さん、よいLinux & WSLライフを!