環境
❯ sw_vers
ProductName: macOS
ProductVersion: 15.0.1
BuildVersion: 24A348
発生した事象
gem install
を実行した際、数分経ってから下記のエラーが返ってきた。
❯ gem install sinatra
ERROR: Could not find a valid gem 'sinatra' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Gem::Net::OpenTimeout: Failed to open TCP connection to rubygems.org:443 (execution expired) (https://rubygems.org/specs.4.8.gz)
TCPコネクションが確立できなかったと言っていること、コマンド実行時の挙動からタイムアウトが発生していると思われることから、ネットワークに問題があると考えた。
解決策
nslookup
でrubygems.org
の名前解決ができているか確認したら、解決できていた。
❯ nslookup rubygems.org
Server: fe80::541f:8d05:aea6:1%11
Address: fe80::541f:8d05:aea6:1%11#53
Non-authoritative answer:
Name: rubygems.org
Address: 151.101.65.227
Name: rubygems.org
Address: 151.101.129.227
Name: rubygems.org
Address: 151.101.193.227
Name: rubygems.org
Address: 151.101.1.227
試しに、違うネットワークにつないで再度gem install
してみたら、成功した。
そこで当初のネットワーク(WiMax)に戻し、ルータのファイアウォール設定を変更してみることにした。
WiMaxのルータの設定画面(192.168.0.1
)にブラウザでアクセスし、
- フィルタリング設定を『有効』
- インターネット接続を『許可』
にして、適用。
続いて、nslookup
で確認したrubygems.org
のIPアドレスに対して
ポート443での通信を許可する設定を追加した。
nc
コマンドで確認したら、疎通できていた。
❯ nc -vz rubygems.org 443
Connection to rubygems.org port 443 [tcp/https] succeeded!
再度gem install
を実行して、インストールが成功した。
❯ gem install sinatra
Successfully installed sinatra-4.1.1
Parsing documentation for sinatra-4.1.1
Done installing documentation for sinatra after 0 seconds
1 gem installed
WiMax環境下でgem install出来なくて困っている方の参考になれば幸いです。