0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NURO光で bundle install できない問題を解決した話 (DNS設定変更)

Posted at

発生した問題

dockerの環境で、railsをbundle installしたらエラーに。

/app# bundle install

Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 13.2.1
[省略]
Using activejob 7.0.8.7
--- ERROR REPORT TEMPLATE -------------------------------------------------------

NoMethodError: undefined method `size' for nil:NilClass
  /usr/local/lib/ruby/3.2.0/rubygems/package/tar_reader/entry.rb:139:in `read'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:365:in `block in digest'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:362:in `each'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:362:in `digest'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:664:in `verify_entry'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:683:in `block in verify_files'
  /usr/local/lib/ruby/3.2.0/rubygems/package/tar_reader.rb:65:in `each'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:682:in `verify_files'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:613:in `block (2 levels) in verify'
  /usr/local/lib/ruby/3.2.0/rubygems/package/tar_reader.rb:27:in `new'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:610:in `block in verify'
  /usr/local/lib/ruby/3.2.0/rubygems/package/file_source.rb:29:in `open'
  /usr/local/lib/ruby/3.2.0/rubygems/package/file_source.rb:29:in `with_read_io'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:609:in `verify'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:590:in `spec'
  /usr/local/lib/ruby/3.2.0/rubygems/installer.rb:287:in `spec'
  /usr/local/lib/ruby/3.2.0/bundler/rubygems_gem_installer.rb:97:in `spec'
  /usr/local/lib/ruby/3.2.0/bundler/source/rubygems.rb:183:in `install'
  /usr/local/lib/ruby/3.2.0/bundler/installer/gem_installer.rb:54:in `install'
  /usr/local/lib/ruby/3.2.0/bundler/installer/gem_installer.rb:16:in `install_from_spec'
  /usr/local/lib/ruby/3.2.0/bundler/installer/parallel_installer.rb:155:in `do_install'
  /usr/local/lib/ruby/3.2.0/bundler/installer/parallel_installer.rb:146:in `block in worker_pool'
  /usr/local/lib/ruby/3.2.0/bundler/worker.rb:62:in `apply_func'
  /usr/local/lib/ruby/3.2.0/bundler/worker.rb:57:in `block in process_queue'
  /usr/local/lib/ruby/3.2.0/bundler/worker.rb:54:in `loop'
  /usr/local/lib/ruby/3.2.0/bundler/worker.rb:54:in `process_queue'
  /usr/local/lib/ruby/3.2.0/bundler/worker.rb:90:in `block (2 levels) in create_threads'

どうやら、Bundler が gem をインストールする際に .gem パッケージの展開・検証をしているときに発生しているようです。

試したこと

dockerのボリュームを消したり、イメージを消したりしましたが、解決せず。

キャッシュを消して、wifiをポケットwifiに繋ぎ変えたらbundle installができました。

rm -rf vendor/cache
rm -rf /usr/local/bundle/cache

NURO光の工事をしてから初めてbundle installしたので、原因はネットワークか?
って気づくのにめちゃくちゃ時間かかりました。
レアケースかもしれないですが、記事が見つからなかったので解決策を残します。

解決方法

1. MacのDNS設定を変更

System Preferences (系統設定) -> Network (ネットワーク) -> 接続中のWi-Fi -> Advanced (詳細) -> DNS

設定したDNSサーバ

  • 192.168.1.1 (NURO光ルータのローカルDNS)
  • 8.8.8.8 (Google Public DNS)
  • 8.8.4.4 (Google Public DNS)

変更前に記載されていたDNS

  • 192.168.1.1 (NURO光ルータのローカルDNS)
  • 240d:f:xxxx:xxxx::xxxx (NURO光のIPv6 DNSと思われる)

これを削除し、新しく 8.8.8.8 を追加しました。

2. bundle install を再試行

DNS設定を変更した後、bundle install を実行すると、正常にGemがインストールされました。

なぜこれで解決したのか

NURO光のデフォルトDNSがIPv6向けのものだったため、IPv4でのネットワーク接続に問題が起きていた可能性が高いらしいです。

8.8.8.88.8.4.4 を追加することでGoogleのパブリックDNSを利用し、IPv4のネットワークも正常に活用できるようになったと思われます。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?