概要
丁度今週の 12/24に
gem Nokogiri 最新版1.18.0 が出たようで
Railsなどで bundle update(install)すると <- でなくて、railsを読み込むと(require 'nokogiri') だった..
以下エラーで止まってしまう
...
bin/rails aborted!
LoadError: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/nokogiri-1.18.0-x86_64-linux-gnu/lib/nokogiri/3.2/nokogiri.so) - /home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/nokogiri-1.18.0-x86_64-linux-gnu/lib/nokogiri/3.2/nokogiri.so (LoadError)
参考
https://travis-ci.community/t/glibc-2-28-not-found-reported-after-nokogiri-1-18-0-released/14494
折角なので、CentOS7 のglibc をupdateしようと思ったが..
NokogiriのGlibc 問題
結論からいうと、
glibcはシステムのベースになっており、多くの基本ライブラリが依存しているため
変更するとシステムが壊れる可能性が高い
(ls
などほとんどのコマンドが使えなくなり、更にkernel panicで 立ち上げ=ログインもできなくなる..)
壊れた場合、
別のOSを立ち上げて ファイルシステムをmount して調整となるが..
そう簡単にいかないようだ..
結論
Glibc は上げずに、Nokogiri をdowngrade(version 下げる) 指定を加える ほうが一旦はよいと思われる。
(Glibc 問題は Nokogiriに限らず、だが..)
gem 'nokogiri', '~> 1.17.0' # 1.17.x の最新バージョン
(Glibc のversion 調整は、難易度が高いため、
仮想環境であれば OS自体を 新しいGlibc対応している新しいものに変えたほうがよい(早い) と思われる)