Description
After npm install -g deepseek-tui, the downloaded prebuilt binary fails to start on Linux distributions with glibc older than 2.39:
/root/.npm/node_modules/lib/node_modules/deepseek-tui/bin/downloads/deepseek:
/lib64/libm.so.6: version `GLIBC_2.29' not found
/lib64/libc.so.6: version `GLIBC_2.29' not found
...
/lib64/libc.so.6: version `GLIBC_2.39' not found
Root cause
The prebuilt Linux binaries are compiled on ubuntu-latest (currently Ubuntu 24.04, glibc 2.39). The resulting binaries link against glibc 2.39 symbols and will not run on any distribution with an older glibc.
This affects a broad range of enterprise Linux distributions still in wide use:
| Distribution |
glibc version |
| RHEL/CentOS 7 |
2.17 |
| RHEL/CentOS 8 / TencentOS 3 |
2.28 |
| Debian 10 (buster) |
2.28 |
| Debian 11 (bullseye) |
2.31 |
| Ubuntu 20.04 |
2.31 |
| Ubuntu 22.04 |
2.35 |
All of these are excluded by the current build configuration.
Steps to reproduce
- On any Linux system with glibc < 2.39 (e.g. TencentOS 3.2 / CentOS 8 / Ubuntu 22.04)
- Run
npm install -g deepseek-tui
- Run
deepseek-tui
- Observe the
GLIBC_X.YY not found errors
Expected behavior
Either:
- The prebuilt binary runs on a wider range of glibc versions (ideally ≥2.28, covering RHEL 8+), or
- The npm postinstall script detects the glibc version and gives a clear error message directing users to build from source (
cargo install deepseek-tui)
Possible fix directions
-
Build with an older glibc target — use ubuntu-22.04 runner (glibc 2.35) or ubuntu-20.04 (glibc 2.31) in the release workflow, or add a dedicated build job on an older runner for maximum compatibility.
-
Use cross with a CentOS 7 image — build against CentOS 7 sysroot (glibc 2.17) via cross or cargo-zigbuild for maximum backward compatibility.
-
Static linking — link musl statically (x86_64-unknown-linux-musl) to eliminate the glibc dependency entirely.
-
At minimum — document the minimum glibc version requirement in README, INSTALL.md, and print a clear error message in the npm postinstall script when the host glibc is too old.
Environment
- OS: TencentOS Server 3.2 (RHEL/CentOS 8 compatible)
- glibc: 2.28
- deepseek-tui version: latest (via npm)
- Install method:
npm install -g deepseek-tui
Description
After
npm install -g deepseek-tui, the downloaded prebuilt binary fails to start on Linux distributions with glibc older than 2.39:Root cause
The prebuilt Linux binaries are compiled on
ubuntu-latest(currently Ubuntu 24.04, glibc 2.39). The resulting binaries link against glibc 2.39 symbols and will not run on any distribution with an older glibc.This affects a broad range of enterprise Linux distributions still in wide use:
All of these are excluded by the current build configuration.
Steps to reproduce
npm install -g deepseek-tuideepseek-tuiGLIBC_X.YY not founderrorsExpected behavior
Either:
cargo install deepseek-tui)Possible fix directions
Build with an older glibc target — use
ubuntu-22.04runner (glibc 2.35) orubuntu-20.04(glibc 2.31) in the release workflow, or add a dedicated build job on an older runner for maximum compatibility.Use
crosswith a CentOS 7 image — build against CentOS 7 sysroot (glibc 2.17) viacrossorcargo-zigbuildfor maximum backward compatibility.Static linking — link musl statically (
x86_64-unknown-linux-musl) to eliminate the glibc dependency entirely.At minimum — document the minimum glibc version requirement in README, INSTALL.md, and print a clear error message in the npm postinstall script when the host glibc is too old.
Environment
npm install -g deepseek-tui