コンテンツへスキップ
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 が切れてしまう問題を解決したお話

関連記事

Claude Codeでタスク管理を楽にする!スマホで動く家計簿アプリを作ってみた

Claude Codeでタスク管理を楽にする!スマホで動く家計簿アプリを作ってみた

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

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

Claude Codeでファイル整理を自動化!散らかったフォルダを一瞬で整頓

Claude Codeでファイル整理を自動化!散らかったフォルダを一瞬で整頓

NVMe非対応なPCにNVMe SSD (960EVO)を取り付けて高速化を図ったお話。

NVMe非対応なPCにNVMe SSD (960EVO)を取り付けて高速化を図ったお話。

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

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

七宮さん

七宮さん

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
  • 【未解決】「ホスト負荷が制限を超えています」とサーチコンソールに表示される件について

カテゴリー

  • 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.