Rails5.2でbundle install/updateができない。rubygems.orgに入れない

目次

はじめに

Railsでアプリを作っていたら、途中でなぜかbundle install/updateができなくなって困りました。
下記のエラー文が出て、最初さっぱりわかりませんでした笑
しかし、stackoverflowをみて解決できたので、備忘録として残しておこうと思います。

The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
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/

(前提、環境)

mac
macOS Mojave 10.14.5
ruby 2.5.1
rails 5.2.3

参考記事

gem cannot access rubygems.org
https://stackoverflow.com/questions/49800432/gem-cannot-access-rubygems-org
IPv6・IPv4とは? IPoE・PPPoEとは? その違いを解説
https://dream.jp/ftth/tips_f/hikari17.html

結論

rubygems.orgのIPv4アドレスをhostsに記載

vi /etc/hosts
--------------------------------------------------------
##
# HOST DATABASE
#
# localhost is used to configure loopback interface
# when the system is booting. Don't change this entry
##
127.0.0.1    localhost
255.255.255.255 broadcasthost
::1             localhost

## 下記を追記
151.101.128.70  rubygems.org
151.101.64.70    rubygems.org
151.101.0.70      rubygems.org
151.101.192.70  rubygems.org

試したこと

gemをアップデートしてみた。

上述のstackoverflowをみていると、gem update –systemを打ってみろ
とのことだったので、一旦コマンドを打ってみた

gem update --system
-------------------------------------------------------------------
ERROR:  While executing gem ... (Gem::RemoteFetcher::UnknownHostError)
timed out (http://api.rubygems.org/specs.4.8.gz)

わかったこと

rubygems.orgは
http://api.rubygems.org/specs.4.8.gz
というurlでアクセスしようとしている

rubygems.orgにアクセスできない?

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

という記述からリクエストが送れていないということかなと思い、
一旦どのようなレスポンスが返ってくるか試してみました。

wgetコマンドでリクエストを送る

wget https://api.rubygems.org/specs.4.8.gz

---------------------------------------------------------------------

api.rubygems.org (api.rubygems.org) をDNSに問いあわせています... 2a04:4e42:400::70, 2a04:4e42::70, 2a04:4e42:200::70, ...
api.rubygems.org (api.rubygems.org)|2a04:4e42:400::70|:443 に接続しています... 失敗しました: Operation timed out.
api.rubygems.org (api.rubygems.org)|2a04:4e42::70|:443 に接続しています... 失敗しました: Operation timed out.
api.rubygems.org (api.rubygems.org)|2a04:4e42:200::70|:443 に接続しています...

wgetが入っていない人は

brew install wget

で使えるようにしてください^^

わかったこと

IPv6でアクセスしようとしている?

rubygems.orgのIPv4とIPv6を確認してみる

おそらく、IPv6ではアクセスできない?ので確認コマンドを打ってみる。

host rubygems.org
--------------------------------------------------------------
rubygems.org has address 151.101.128.70
rubygems.org has address 151.101.64.70
rubygems.org has address 151.101.0.70
rubygems.org has address 151.101.192.70
rubygems.org has IPv6 address 2a04:4e42:600::70
rubygems.org has IPv6 address 2a04:4e42::70
rubygems.org has IPv6 address 2a04:4e42:400::70
rubygems.org has IPv6 address 2a04:4e42:200::70
rubygems.org mail is handled by 10 mxa.mailgun.org

わかったこと

rubygemsのIPv4のアドレスは下記の4つ
151.101.128.70
151.101.64.70
151.101.0.70
151.101.192.70

IPv4とIPv6について

下記の記事が参考になるかと思います。

IPv6・IPv4とは? IPoE・PPPoEとは? その違いを解説
https://dream.jp/ftth/tips_f/hikari17.html

要は、既存のインターネット上の住所(IPv4)が枯渇し始め、新しい住所登録(IPv6)に変更され始めているということです!
通常URL欄には載りませんし、IT系の人しか関わりはないかと思いますが笑

終わりに

今回は結構コマンドを用いてアドレスを確認してhostsに追記するなど、普段なかなか実行しないことをやったので焦りました。
bundlerが新しいバージョンになって、IPv6に対応し始めたんでしょうか?笑
普段使わないコマンドを使ったので今度Linuxのコマンドの記事でも書こうかと思います。(自分の備忘録として)

https://hirocorpblog.com/roadmap-engineer/

よかったらシェアしてね!
  • URL Copied!
  • URL Copied!
目次
閉じる