コンテンツへスキップ
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 のダウングレードが推奨されますが、事情により最新版を使わざるを得ない場合があると思います。今回はそういうパターン用のです。

Table of Contents

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 が切れてしまう問題を解決したお話

Related Posts

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

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

【検証】AIのAPI代は本当に減らせる?コンテキスト圧縮ツール「Headroom」を導入して実測してみた

【検証】AIのAPI代は本当に減らせる?コンテキスト圧縮ツール「Headroom」を導入して実測してみた

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

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

Claude Codeでタスク管理を楽にする!シンプルな家計簿アプリを作ってみた

Claude Codeでタスク管理を楽にする!シンプルな家計簿アプリを作ってみた

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

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

七宮さん

七宮さん

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

@shichinomiya_s

人気の記事

  • Amazonアソシエイト公式カードジェネレーター終了!代替の無料ツールを公開【ブログ・WordPress対応】
  • CX-30のマツコネを8.8インチから10.25インチモニターに交換してみた (Mazda3)
  • 【検証】Tesla V100 32GBでローカルLLMはどこまで動く?Qwen 3.6実測ベンチマーク — 中古13万円でMoE 98.8 tok/s
  • 【無事に復活】買ってまもないBlackBerry KEYoneを雨で水没させた話
  • 【宿泊レポ】ヴィアインプライム京都駅八条口 デラックスダブルルームに宿泊してみた。

カテゴリー

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

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

カテゴリー

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

最近の投稿

  • 【検証】Tesla V100 32GBでQwen3.8-27Bは動くか?128kコンテキストが1枚に載った実測ベンチマーク
  • 【検証】Tesla V100 32GBでローカルLLMはどこまで動く?Qwen 3.6実測ベンチマーク — 中古13万円でMoE 98.8 tok/s
  • 【検証】Darkbloomは本当に稼げる?Macを1日放置した収益を大公開!
  • 【検証】「LLM API費を50〜80%削減」のTokenTamerを実測 — Pythonは本当に80%減、でも効くのは「再読み込み」だけ

© 2026 Miya-Gadget. All rights reserved.