🦔
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found
Ubuntu 18.04 など古い OS で最新の node.js を使おうとすると `GLIBC_2.28' not found などのエラーが出ることがある。対処方法を説明する。
手順
apt update && apt install -y curl
export XDG_CONFIG_HOME=/work
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
export NVM_DIR="$XDG_CONFIG_HOME/nvm"
. "$NVM_DIR/nvm.sh"
nvm install 17.9.1
npm install uglify-js -g
概略
node.js で v20.0.0 など最新のバージョンを使おうとすると必要な GLIBC がプラットフォーム側でインストールされてないことがある。このためプラットフォーム側で対応している node.js の古いバージョンを指定してインストールする。
ポイントは nvm install 17.9.1
で、対応している node.js をバージョン指定でインストールする。
説明
nvm のインストール
https://www.linode.com/docs/guides/how-to-install-use-node-version-manager-nvm/ のサイトに記載の手順で nvm
をインストールする。(v0.39.3
の部分で最新の情報は https://github.com/nvm-sh/nvm#install--update-script 参照)
nvm
をインストールする際、指定した場所にインストールするため、 XDG_CONFIG_HOME
の変数を事前に定義しておく。XDG_CONFIG_HOME
の変数を定義しない場合デフォルトの場所にインストールされる。
export XDG_CONFIG_HOME=/work
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
nvm
を使って node.js の指定バージョンをインストールする。
export NVM_DIR="$XDG_CONFIG_HOME/nvm"
. "$NVM_DIR/nvm.sh"
nvm install 17.9.1
nvm install 17.9.1
の代わりに nvm install node
を実行すると node.js の最新バージョンをインストールできるので GLIBC のエラーを確認できる。
node.js/npm のインストール確認用に uglify-js をインストールする
npm install uglify-js -g
uglify-js のインストール確認
which uglifyjs
Dockerfile にしたもの
参考サイト
Discussion