nodeのv18を使ったらエラーになった(CentOS7)

投稿者: | 2022年5月31日

node.jsを使ってみたいと思い、様々なサイトを参考にnodebrew,nodeをインストールしてみた。

現在のnodeのバージョンは、最新が「v18.2.0」とのこと(2022/05/31 時点)なので、最新のv18.2.0をインストールしてみた。

nodebrew install v18.2.0
nodebrew use v18.2.0

上記コマンドではエラーも発生しなかった。

正しくインストールされたか、nodeのバージョンを確認してみたところ、

[root@localhost ~]# node -v
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' 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.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)

なんかやたらエラーが出た。

どうやらglibc、libstdc++のバージョンが必要条件を満たしていないとのこと。

まずはlibm.so.6についてみてみる

[root@localhost ~]# strings /lib64/libm.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.4
GLIBC_2.15
GLIBC_PRIVATE
GLIBC_2.15

たしかに「GLIBC_2.27」がない。

次にlibc.so.6

[root@localhost ~]# strings /lib64/libc.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE

※ほかにもいろいろ出てきたが、見にくいので不要なものは削除。

「GLIBC_2.25」「GLIBC_2.28」がない。

これも同じくないんだろうけどlibstdc++.so.6をみる。

[root@localhost ~]# strings /lib64/libstdc++.so.6 | grep CXXABI_
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1
[root@localhost ~]# strings /lib64/libstdc++.so.6 | grep GLIBCXX_
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH

このためには、それぞれバージョンアップが必要だが、yumでバージョンアップを試みても、
現在が最新版とのこと。

まだ提供されてないようなので、あきらめる。

ちなみに、上記のモジュールを再ビルドして欠如しているものを入れ込む方法はあるみたいだが、今後のサーバマネジメントを考えて、やめておいた。

nodeをダウングレードすれば済む話らしいので、v17.6.0にダウングレード。

[root@localhost ~]# nodebrew use v17.6.0
use v17.6.0
[root@localhost ~]# node -v
v17.6.0

これで、使えるようになった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)