🏋️‍♀️

[wsl] gh auth loginできない____ウザくね?

に公開
2

Summary(概要)

WSLで gh auth login 叩いたら「ブラウザ開きます?」って聞かれて、Enter押した瞬間にエラーで落ちるアレ。
xdg-open,x-www-browser,www-browser,wslview のどれも入ってないせいで、勝手にブラウザを開けないのが原因_____
毎回URLをコピーするのもダルいし上手いこといかんから、サクッと解決したメモを残しておくぅ。※ ref

※ もう最近はgit/gh操作もAI Agentがどうのこうするから
PATとかでつまづくのだるいよなぁ~~?だるいと思う!!!
一つ一つクリアしていこう!

Symptoms at a Glance(ざっくり症状)

$ gh auth login
? What account do you want to log into? GitHub.com
? What is your preferred protocol for Git operations on this host? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser

! First copy your one-time code: XXXX-YYYY
Press Enter to open github.com in your browser...
! Failed opening a web browser at https://github.com/login/device
  exec: "xdg-open,x-www-browser,www-browser,wslview": executable file not found in $PATH

Enter押してもブラウザが開かないので、手でURL開くハメになる。
毎回これやるの面倒すぎ!!(そしてうまく行きません)

Solution(解決策)

Part1(wslu を入れて wslview を使えるようにする)

wslview が使えると、WSLからWindows側の既定ブラウザが呼び出せる。
wslu パッケージに含まれてるので、これだけ入れておけばOK。

sudo apt update -y
sudo apt install wslu -y

これで wslview コマンドが生えるので、再度 gh auth login をすると Enter でちゃんとブラウザが開くようになる。
手元のWindows側ブラウザで GitHub のデバイス認証ページが勝手に開く → コード入力 → 完了、のいつもの流れ。

Part2(環境変数で回避)

以下コマンドで回避

BROWSER=/mnt/c/Windows/explorer.exe gh auth login

export BROWSER=/mnt/c/Windows/explorer.exe~/.bashrcに記載したほうがよさげ💡

とりま、下記の人はやったらいいと思う(勝手に_______)

  • wsluは開発終了しているので躊躇する(「それofそれ」な意見)
  • ubuntuに余計なもの入れたくない人
  • できるだけ軽い仮想マシンでいたい人
  • 変な人

Reference(参考)

Conclusion(まとめ)

  • gh auth login でブラウザが開かないのは xdg-open 系がないから。
    • 元から入れといてくれてええやんけどな________
  • sudo apt install wslu で wslview を入れておけば Enter でWindows側ブラウザが開く。
  • 手動でURL開くのもアリ(いやナシすぎる)だけど、毎回やるのはウザいので wslu を入れてしまうのが楽。
  • wsl内でgh使うんならハナからwsluもセットでインストールしとけばええ
    • sudo apt install -y gh wslu <- 大事とちゃうか?

Discussion

rilril

wslu開発終了してしまったんですよね。
https://github.com/wslutilities/wslu/discussions/329

私は以下の設定にしています。

export BROWSER='/mnt/c/Windows/System32/rundll32.exe url.dll,FileProtocolHandler'
1
mizegretmizegret

ありがとうございます!
確かに開発終了してしまったものをコンピュータに入れるのは躊躇しますよね💦

私は以下の設定にしています。
export BROWSER='/mnt/c/Windows/System32/rundll32.exe url.dll,FileProtocolHandler'

👆この方法は知らなかったです!

情報共有ありがとうございました(⌒∇⌒)