node.jsをコマンドラインで実行した際にエラーが発生しました。以下のエラーを解消する方法です。
$ nodebrew use v20.2.0
use v20.2.0
$ node -v
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
バージョンの確認すら実行できない。。
GLIBC_2.27 not found
等々言われています。GLIBCとは「GNU C Library」の事です。
現状は何が入っているのかバイナリ内に記述しているバージョン情報を stringsコマンド で確認していきます。
$ strings /lib64/libm.so.6 | grep GLIBC_2
GLIBC_2.2.5
GLIBC_2.4
GLIBC_2.15
GLIBC_2.15
__errno_location@@GLIBC_2.2.5
qsort@@GLIBC_2.2.5
fputs@@GLIBC_2.2.5
memset@@GLIBC_2.2.5
feupdateenv@@GLIBC_2.2.5
GLIBC_2.4
memmove@@GLIBC_2.2.5
fwrite@@GLIBC_2.2.5
__cxa_finalize@@GLIBC_2.2.5
stderr@@GLIBC_2.2.5
$ strings /lib64/libm.so.6 | grep GLIBC_2.27
$
GLIBC自体は入っているのですが、必要としているバージョンが入っていません。
GLIBCの更新をする方法としてはソースインストールをする方法があります。GLIBC以外のエラーも出ていますが、同じくバージョン不足が原因でした。
ソースインストールをすれば解決しますが、システム環境の変更は root権限が必要であったり、他ライブラリの動作確認やメンテナンスコストも増えていきます。この際古い環境を新しくしても良いかもですが、自分の担当領域では無い場合やセキュリティも問題ないのであれば手間は最小限にしましょう。
nodeのバージョンもなるべくなら最新を入れたいけども、最新バージョンじゃないと動かない物も無かったのでバージョンを下げて対応。何か必要に駆られたら対応するとおもいます。
自分の環境ではv16まで下げればエラーは出なくなりました。
$ nodebrew ls-remote
~~~
v16.0.0 v16.1.0 v16.2.0 v16.3.0 v16.4.0 v16.4.1 v16.4.2 v16.5.0
v16.6.0 v16.6.1 v16.6.2 v16.7.0 v16.8.0 v16.9.0 v16.9.1 v16.10.0
v16.11.0 v16.11.1 v16.12.0 v16.13.0 v16.13.1 v16.13.2 v16.14.0 v16.14.1
v16.14.2 v16.15.0 v16.15.1 v16.16.0 v16.17.0 v16.17.1 v16.18.0 v16.18.1
v16.19.0 v16.19.1 v16.20.0
~~~
$ nodebrew install v16.20.0
Fetching: https://nodejs.org/dist/v16.20.0/node-v16.20.0-linux-x64.tar.gz
################################################################################################################################################# 100.0%
Installed successfully
$ nodebrew use v16.20.0
use v16.20.0
$ node -v
v16.20.0
nodebrewの導入方法についてはこちらで解説しています。
お疲れ様でした。
コメントを残す