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のコマンドの記事でも書こうかと思います。(自分の備忘録として)

未経験者から最強のRailsエンジニアになるためのロードマップ
webアプリエンジニアになるためにどの程度学習すべきかをまとめた記事です。
タイトルとURLをコピーしました