LoginSignup
2
1

More than 3 years have passed since last update.

Could not fetch specs from https://rubygems.org/と言われてbundle installできない時

Posted at

dockerで開発環境を構築した際、コンテナ内でbundle installしようとしたら下記のようなエラーが。

Fetching source index from https://rubygems.org/

Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/

Retrying fetcher due to error (3/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/

Retrying fetcher due to error (4/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/

Could not fetch specs from https://rubygems.org/

リクエストが正常に送れていないようです。。。
色々な記事を調べさせていただきましたが、よく見たのが

gem update --system

を実行すると直るというもの。
しかし、記事によっては「それでは効果がなかった」や「関係ないのでは」という声もあり、困惑

ただ「PCの再起動で直った」という記事もあって、とりあえずそれを試したところ、たしかに解消しbundle installできました...? しかし原因がわからないためモヤモヤしていました。

そんな中再度gemの更新でbundle installする際に同じエラーが再発してしまい、「これは絶対なんか原因あるでしょ」と思ってちょっと疑いながらも

gem update --system

を実行してみました。

すると綺麗サッパリ一瞬でコネクトしてbundle installできました。疑ってスミマセンデシタ
そもそもgem update --systemは、RubyGems自体のバージョンアップをするものということです。

「gem update --system」と「gem update」の違い

答えはここにあり?(※多分)

アップデートのログを見てみると、この様な記述がありました。

## Enhancements:
* Optionally fallback to IPv4 when IPv6 is unreachable. Pull request #2662
  by sonalkr132

「IPv6で接続できない時にIPv4にフォールバックする機能を追加した」って感じだと思います。

フォールバックについては以下の記事を参考にしました。
IPv6/IPv4フォールバックとは

issueも見に行ったのですが、IPv6での接続ができないという声が多かったようです。ちゃんと隅々まで読んでいないのでご了承ください
https://github.com/rubygems/rubygems/pull/2662

手動で対策している方もいた

実際に「IPv6の場合に接続ができないため、IPv4のアドレスをetc/hostsに追加する」という対処法を取られている方がおられました。
rubygems.orgにアクセスできなくなった場合の解決法
Rails5.2でbundle install/updateができない。rubygems.orgに入れない

先程のissueにあったように、この問題を解決するためにフォールバックの機能を追加したアップデートがリリースされたのかな、と考えています。

結論

再起動で一度いけたのは何故だろうという気持ちではありますが、
rubygems.orgにつながらないときは、「IPv6で接続しようとして失敗している」という原因が考えられるため、gemを長らくアップデートしていない場合は、

gem update --system

をやってみるといいかもしれません。
これによりIPv6で失敗しても自動的にIPv4での接続に切り替えてくれる為、問題なく動作するということだと思います。

bundle installができない

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1