コンテンツへスキップ
Miya-Gadget
  • トップページ
  • PC
  • ガジェット
  • 生成AI
  • 旅行
  • 車
  • おしらせ
  • Miya-Vacation
  • お問い合わせ
JA / EN
  1. ホーム
  2. PC
  3. 「GLIBC_2.28 not found」エラーをNode.js 20ダウングレードせず解決する方法
PC

「GLIBC_2.28 not found」エラーをNode.js 20ダウングレードせず解決する方法

2025年2月16日 · Shichinomiya
「GLIBC_2.28 not found」エラーをNode.js 20ダウングレードせず解決する方法

こんにちは、七宮さん (@shichinomiya_s) です。

今回は、Linux 環境で Node.js 20.9.0 (LTS) を使おうとしたところ、「GLIBC_2.28 not found」に遭遇しました。
今回の記事はその解消プロセスを備忘録としてまとめました。
一般的には Node.js のダウングレードが推奨されますが、事情により最新版を使わざるを得ない場合があると思います。今回はそういうパターン用のです。

目次

Toggle
  • エラー発生の背景
  • GLIBCって何ぞや?
  • 解消までの道すじ
    • 【手順1】 おまじない&ビルド必須パッケージのインストール
    • 【手順2】 GLIBC 2.28 のダウンロード&展開
    • 【手順3】 ビルド用ディレクトリの作成
    • 【手順4】 GLIBC のビルドとインストール
    • 【手順5】 インストール確認
    • 【手順6】 patchelf の導入& Node バイナリの位置確認
    • 【手順7】 Node バイナリが ELF 形式か確認
    • 【手順8】 patchelf で Node バイナリを再リンク
    • 【手順9】 Node.js 動作確認
  • さいごに

エラー発生の背景

Ubuntu 16.04 LTS (x86_64) に Node.js 20.9.0 をインストールしたところ、以下のエラーが発生しました:

root@server:/# node -v
node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by node)

Node.js のバイナリが要求する GLIBC のバージョンが不足しているため、単に「node -v」すら実行できない状態になりました。

 

GLIBCって何ぞや?

GLIBC(GNU C Library)は、Linux をはじめとする多くの OS 上で、メモリ管理、ファイル操作、ネットワーク通信、プロセス管理、数学演算などの基本機能を担う、まさにソフトウェアの土台とも言えるライブラリです。

プログラムが正しく動作するための基盤となるため、バージョンの不整合が発生すると、厄介なことになります。

 

解消までの道すじ

GLIBC 2.28 をインストールすることで、下位互換性を利用して GLIBC_2.25 や GLIBC_2.27 のエラーも同時に解決できます。

 

【手順1】 おまじない&ビルド必須パッケージのインストール

apt-get update
apt-get install -y wget perl gcc make
apt-get install -y gawk bison

【手順2】 GLIBC 2.28 のダウンロード&展開

cd /tmp
wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar -xf glibc-2.28.tar.gz

【手順3】 ビルド用ディレクトリの作成

mkdir -p ./glibc-build && cd ./glibc-build

【手順4】 GLIBC のビルドとインストール

../glibc-2.28/configure --prefix=/opt/glibc-2.28
make && make install

【手順5】 インストール確認

ls -la /opt/glibc-2.28

# 以下は実行例
total 40
drwxr-xr-x 10 root root 4096 Nov 6 13:15 .
drwxr-xr-x 1 root root 4096 Nov 6 13:15 ..
drwxr-xr-x 2 root root 4096 Nov 6 13:15 bin
drwxr-xr-x 2 root root 4096 Nov 6 13:15 etc
drwxr-xr-x 21 root root 4096 Nov 6 13:15 include
drwxr-xr-x 4 root root 4096 Nov 6 13:15 lib
drwxr-xr-x 3 root root 4096 Nov 6 13:15 libexec
drwxr-xr-x 2 root root 4096 Nov 6 13:15 sbin
drwxr-xr-x 4 root root 4096 Nov 6 13:15 share
drwxr-xr-x 3 root root 4096 Nov 6 13:15 var

【手順6】 patchelf の導入& Node バイナリの位置確認

apt install -y patchelf
command -v node

# 実行例:
# /root/.nvm/versions/node/v20.9.0/bin/node

【手順7】 Node バイナリが ELF 形式か確認

file {上記で確認した Node バイナリのパス}

# 実行例:
# /root/.nvm/versions/node/v20.9.0/bin/node: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=..., for GNU/Linux 3.2.0, not stripped, too many notes (256)

【手順8】 patchelf で Node バイナリを再リンク

patchelf --set-interpreter /opt/glibc-2.28/lib/ld-linux-x86-64.so.2 --set-rpath /opt/glibc-2.28/lib/:/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu/ {上記で確認した Node バイナリのパス}

# 実行例:
# patchelf --set-interpreter /opt/glibc-2.28/lib/ld-linux-x86-64.so.2 --set-rpath /opt/glibc-2.28/lib/:/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu/ /root/.nvm/versions/node/v20.9.0/bin/node

# ※ AArch64 の場合は、以下のようにパスが変わります:
# patchelf --set-interpreter /opt/glibc-2.28/lib/ld-linux-aarch64.so.1 --set-rpath /opt/glibc-2.28/lib/:/lib/aarch64-linux-gnu/:/usr/lib/aarch64-linux-gnu/ {Node バイナリのパス}

【手順9】 Node.js 動作確認

node -v

# 実行例:
# v20.9.0

さいごに

無事に最新の Node.js 20.9.0 が動作するようになりました!

GLIBC のライブラリバージョン不足によるエラーは、基本的にはこの手順で解決可能です。

もちろん、OS のアップグレードが一番推奨されますが、旧バージョンの OS を使わないといけない場合などでは、このように非対応でも入れるしかありません。

 

あわせて読みたい

  • 👉 Raspberry Pi Zero 2 W で Wi-Fi が切れてしまう問題を解決したお話
  • 👉 Raspberry Pi 4でARM版Windows 10を試してみる。
  • 👉 【Python】Streamlitの使い方完全ガイド!初心者でも簡単にWebアプリ開発してみた
前の記事 【検証】GTX 1080 Ti でローカルLLMはどこまで動く?性能と限界を試してみた
次の記事 Raspberry Pi Zero 2 W で Wi-Fi が切れてしまう問題を解決したお話

関連記事

【導入編】Lumia 950 XLでARM版Windows 10を動作させるお話。

【導入編】Lumia 950 XLでARM版Windows 10を動作させるお話。

【準備編】Lumia 950 XLでARM版Windows 10を動作させるお話。

【準備編】Lumia 950 XLでARM版Windows 10を動作させるお話。

【検証】GTX 1080Tiで最新AI「Qwen 3.5」はどこまで動く?ローカルLLMベンチマーク

【検証】GTX 1080Tiで最新AI「Qwen 3.5」はどこまで動く?ローカルLLMベンチマーク

【1809対応】Windows 10の不要アプリを完全に消去する方法 (実質的なLTSB化)

【1809対応】Windows 10の不要アプリを完全に消去する方法 (実質的なLTSB化)

コメントを残す コメントをキャンセル

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

七宮さん

七宮さん

PC・ガジェット好きのブロガー。日々の発見を共有しています。

@shichinomiya_s

人気の記事

  • CX-30のマツコネを8.8インチから10.25インチモニターに交換してみた (Mazda3)
  • Amazonアソシエイト公式カードジェネレーター終了!代替の無料ツールを公開【ブログ・WordPress対応】
  • 【2026年版】ブラウン シェーバー Series 5 の電池交換を自分でやる方法【かんたん】
  • 【検証】Tesla V100 32GBでローカルLLMはどこまで動く?Qwen 3.6実測ベンチマーク — 中古13万円でMoE 98.8 tok/s
  • 【1809対応】Windows 10の不要アプリを完全に消去する方法 (実質的なLTSB化)

カテゴリー

  • PC
  • おしらせ
  • おでかけ
  • ガジェット
  • レンタルサーバー・VPS
  • 回線
  • 家電
  • 旅行
  • 海外通販
  • 生成AI
  • 自転車
  • 車
Miya-Gadget

PC・ガジェット・DIYのレビューブログ。
日々のテック体験を共有しています。

カテゴリー

  • PC (39)
  • ガジェット (26)
  • 生成AI (24)
  • 回線 (7)
  • おしらせ (5)
  • おでかけ (3)
  • 旅行 (3)
  • 海外通販 (2)

最近の投稿

  • 【検証】RTX 4080 32GBで「GPU unlock」を実測:BF16行列演算は+78%、LLMはほぼ速くならない
  • 【費用0円】エプソンの廃インク限界エラーを無料解除!EP-804Aを自力リセットした全手順
  • 【徹底検証】Tesla V100 SXM2を2枚載せる「デュアルNVLink基板」の正体:約10万円でVRAM 64GB・300GB/s環境は実用になるか?
  • 【検証】RTX 4080 32GB改造品の実力:Qwen3.8-27Bの262K・125B MoE・MiniMax H3動画生成を実測レビュー

© 2026 Miya-Gadget. All rights reserved.