はじめに
“GitHub Copilot CLI”をインストールして、検証については前の記事を参考にしてください。
今回はインストール前にかなり格闘したので、その内容を記事にします。
環境
- Windows10(いよいよ標準サポートが終了します)
- Powershellを使用
- WSL (Ubuntu22.04)
時系列
- Node.jsのv22.20.0をインストール。下記URLからmsiをインストールし、ウィザードでは基本的に[次へ]を押下し続ければ、インストールされます。
- PowerShellを開き、npmをインストール(バージョン10以上)
- 早速、”GitHub Copilot CLI”をインストールしようとし、下記のコマンドを実施。
npm install -g @github/copilot
- 実行後、下記のエラーが発生。
npm error command failed npm error command C:\WINDOWS\system32\cmd.exe /d /s /c node scripts/prebuild.js || node-gyp rebuild npm error > Copying prebuilds to release folder...
- 出ているログの箇所(node scripts/prebuild.js || node-gyp rebuild と Copying prebuilds to release folder…)から推測すると、パッケージがプリビルドバイナリを使えずに”node-gyp”にフォールバックしてビルドしようとし、そのビルドがWindows環境で失敗しているパターンだと判断。実際、Node.js 22系+Windows環境ではプリビルドが用意されていなかったり、”node-gyp”関連で失敗する事例はあったりしました。
環境確認
- Node.jsのバージョンを確認してみる。これは問題なし。
- npmのバージョンを確認。
- npmが設定しているPythonの実行パスが表示するコマンドを実施。これは”undefined”が返ってきました。
npm config get python
> undefined
対応記
- 管理者権限でPowerShellかコマンドプロンプトを開き、以下のコマンドを実行してみる。npmのキャッシュを強制削除する。
- 下記のコマンドで”GitHub Copilot CLI”のインストールを試す。”–no-optional”オプションを使用して、optionalなネイティブ依存(node-pty 等)をスキップしてインストールを試みましたが、結局失敗しました。
npm install -g @github/copilot --no-optional --verbose
-
“GitHub Copilot CLI”を使用するにはNode.jsのバージョンを22以上、npmのバージョンも10以上にしないといけないので、バージョンを下げることはしたくなかったです。今までインストールしていたバージョンとの互換性などで解決に時間がかかり、とにかく”GitHub Copilot CLI”を触りたかったため、Windowsでの対応は一旦諦め、WSL(Ubuntu22.04)で”GitHub Copilot CLI”をインストールする方向に変更しました。
-
管理者権限でのPowershellで、WSLをインストール。(WSLをインストールしている人はスキップ。また、”wsl –update”のコマンドを実施した方がいいと思います。)
- WSL の Ubuntu を開き、nvm(Node Version Manager)をインストール。(Linuxだとnvmが推奨されているようです)
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.6/install.sh | bash
- また、エラーが表示されました。どうやら、”github.com”の名前解決が出来ていない模様。
curl: (6) Could not resolve host: raw.githubusercontent.com
- ネットワーク疎通チェックするため、GoogleのDNSにpingが通るか確認する。(ネットワーク接続の有無確認)
- 通っていることを確認。
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=6.69 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=14.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=116 time=6.74 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 6.691/9.218/14.222/3.538 ms
- 下記のコマンドを実施し、”github.com”が通っていないことを確認する。
ping -c 3 github.com
> ping: github.com: Temporary failure in name resolution
- etc配下の”resolv.conf”ファイルの中身を確認する。
ls -l /etc/resolv.conf
cat /etc/resolv.conf
- “nameserver IPアドレス”の出力でした。”resolv.conf”ファイルが”nameserver xxx.xxx.xxx.xxx”となっていると、WSLがWindows側から渡されたDNSを使っており、その DNS(または上流)が”raw.githubusercontent.com”や”github.com”の名前解決を返していない可能性が高いと判断。
nameserver xxx.xxx.xxx.xxx
- 一時的にDNSを”1.1.1.1″と”8.8.8.8″に切り替えて動作確認を試します。WSL上で”resolv.conf”ファイルをバックアップして上書きします。
※バックアップ名はわかるようにすれば、大丈夫です。
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
- 一時的にCloudflareとGoogle DNSのIPアドレスを設定する。権限も設定する。
sudo bash -c 'echo -e "nameserver 1.1.1.1\nnameserver 8.8.8.8" > /etc/resolv.conf'
sudo chmod 644 /etc/resolv.conf
- 設定値が変更されたことを確認する。
cat /etc/resolv.conf
> nameserver 1.1.1.1
> nameserver 8.8.8.8
- 名前解決を試す。nslookupがない場合に備えて、”apt install dnsutils”のインストールを含めたコマンドを実施する。
which nslookup >/dev/null 2>&1 || sudo apt update >/dev/null 2>&1 && sudo apt install -y dnsutils >/dev/null 2>&1 || true
nslookup github.com
ping -c 3 github.com
-
ここでnslookupとpingが成功したので、DNSが問題だったことが確定しました。次は恒久化対応に進みます。
-
Powershell等でWSLをシャットダウンする。
※そのままWSLを[× : 閉じる]で閉じても、いけると思いますが。
- WSLを再度起動し、下記のコマンドを実施する。
sudo tee /etc/wsl.conf > /dev/null
- “resolv.conf”ファイルを上書きする。(コマンドはセットとします)
sudo rm -f /etc/resolv.conf
echo -e "nameserver 1.1.1.1\nnameserver 8.8.8.8" | sudo tee /etc/resolv.conf >/dev/null
sudo chmod 644 /etc/resolv.conf
- 再度、PowershellでWSLをシャットダウンする。
※そのままWSLを[× : 閉じる]で閉じても、いけると思いますが。
- 再度、WSL(Ubuntu)を開いて、下記のコマンドを実施し、”resolv.conf”ファイルの値が変わっていることを確認する。
cat /etc/resolv.conf
> nameserver 1.1.1.1
> nameserver 8.8.8.8
- 次のコマンドを実施し、”nodejs.org”の名前解決がされていることを確認する。
- 次のコマンドを実施し、”nodejs.org”への接続ができていることを確認する。
curl -I https://nodejs.org 2>&1 | sed -n '1,8p'
>% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
HTTP/2 307 date: Sat, 27 Sep 2025 11:41:15 GMT
content-type: text/plain
cf-ray: 985abb1b4919deb5-NRT
cache-control: public, max-age=0, must-revalidate
- 下記のコマンドを実施し、nvmをインストール。ここでようやく成功し、~/.nvm にインストールされ、PROFILE に読み込み行が追加されました。
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.6/install.sh | bash
- 下記のコマンドを実施し、nvmを読み込む。
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
- 下記のコマンドを実施し、bashrcに入っているかを確認する。
grep -n "nvm.sh" ~/.bashrc || true
- 下記のコマンドを実施し、nvmが動いているかを確認する。
- バージョンが返ってきたので、大丈夫です!
- 下記のコマンドを実施し、Nodeの公開一覧に接続できるかを確認する。
curl -fsS https://nodejs.org/dist/index.json | sed -n '1,4p'
- JSON の先頭が見えればネットワーク的に問題ないです。
[
{"version":"v24.10.0","date":"2025-10-08","files":["aix-ppc64","headers","linux-arm64","linux-ppc64le","linux-s390x","linux-x64","src","win-arm64-7z","win-arm64-zip","win-x64-7z","win-x64-exe","win-x64-msi","win-x64-zip"], (以下省略)
- 下記のコマンドを実施し、Node22系をインストールする。
- nvm、node、npmそれぞれのバージョンを確認する。
nvm use 22.20.0
> Now using node v22.20.0 (npm v10.9.3)
node -v
> v22.20.0
npm -v
> 10.9.3
- 最後に”GitHub Copilot CLI”をインストールが成功しました!!長かった…!!
npm install -g @github/copilot
総括
- “GitHub Copilot CLI”を使用するにはNode.jsのバージョンを22以上、npmのバージョンも10以上にしないといけないので、バージョンを下げることはしたくなかったです。今までインストールしていたバージョンとの互換性などで解決に時間がかかり、とにかく”GitHub Copilot CLI”を触りたかったため、Windowsでの対応は一旦諦め、WSL(Ubuntu22.04)で”GitHub Copilot CLI”をインストールする方向に変更。
- WSLのGitHub Copilot CLIを使用しようとしたら、”github.com”の名前解決ができていなかったため、それの対応。その後、nvmをインストールし、GitHub Copilot CLIのインストールができました。
- 使用PCが5年以上と古いので、PC交換後、Windowsでも検証します。特に非エンジニアだとLinuxよりはWindowsの方が馴染みがあると思いますので。
元の記事を確認する