@@ -11,22 +11,16 @@ echo "System GLIBC version: $GLIBC_VERSION"
1111
1212# Choose Node.js version based on GLIBC compatibility
1313# Research shows that Node.js compatibility with GLIBC is complex
14- # Let's use specific versions known to work with Ubuntu 18 .04
14+ # # Supported: Ubuntu 22.04 and 24 .04 only
1515echo " GLIBC version detected: $GLIBC_VERSION "
1616
17- if [[ $( echo " $GLIBC_VERSION 2.28" | awk ' {print ($1 >= $2)}' ) == 1 ]]; then
18- NODE_VERSION=" 20.17.0" # Latest LTS for systems with GLIBC 2.28+
19- echo " Using Node.js $NODE_VERSION (requires GLIBC 2.28+)"
20- elif [[ " $GLIBC_VERSION " == " 2.27" ]] || [[ $( echo " $GLIBC_VERSION 2.27" | awk ' {print ($1 == $2)}' ) == 1 ]]; then
21- # Ubuntu 18.04 specific - use Node.js 16.20.2 (has better Web API support including ReadableStream)
22- NODE_VERSION=" 16.20.2" # Later 16.x version with Web API support for Ubuntu 18.04
23- echo " Using Node.js $NODE_VERSION (Ubuntu 18.04 compatible, GLIBC 2.27, with Web APIs)"
24- elif [[ $( echo " $GLIBC_VERSION 2.17" | awk ' {print ($1 >= $2)}' ) == 1 ]]; then
25- NODE_VERSION=" 16.20.2" # Safe choice for systems with GLIBC 2.17+
26- echo " Using Node.js $NODE_VERSION (requires GLIBC 2.17+, Ubuntu 18.04 compatible, with Web APIs)"
17+ if [[ $( echo " $GLIBC_VERSION 2.35" | awk ' {print ($1 >= $2)}' ) == 1 ]]; then
18+ NODE_VERSION=" 20.17.0" # Latest LTS for Ubuntu 22.04/24.04
19+ echo " Using Node.js $NODE_VERSION (Ubuntu 22.04/24.04 compatible, GLIBC 2.35+)"
2720else
28- NODE_VERSION=" 14.21.3" # Fallback for very old systems
29- echo " Using Node.js $NODE_VERSION (fallback for very old systems)"
21+ echo " ERROR: Only Ubuntu 22.04/24.04 (GLIBC 2.35+) is supported."
22+ exit 1
23+ fi
3024fi
3125
3226NODE_ARCH=" linux-x64"
@@ -53,26 +47,15 @@ echo "Detected Ubuntu version: $UBUNTU_VERSION"
5347echo " Detected GLIBC version: $GLIBC_VERSION "
5448
5549# Determine appropriate Node.js version based on GLIBC compatibility
56- if [[ $( echo " $GLIBC_VERSION 2.28" | awk ' {print ($1 >= $2)}' ) == 1 ]]; then
57- REQUIRED_NODE_VERSION=" 18"
58- NODE_SETUP_SCRIPT=" setup_18.x"
59- MANUAL_NODE_VERSION=" 18.20.4"
60- echo " GLIBC $GLIBC_VERSION supports Node.js v18+"
61- elif [[ " $GLIBC_VERSION " == " 2.27" ]] || [[ $( echo " $GLIBC_VERSION 2.27" | awk ' {print ($1 == $2)}' ) == 1 ]]; then
62- REQUIRED_NODE_VERSION=" 16"
63- NODE_SETUP_SCRIPT=" setup_16.x"
64- MANUAL_NODE_VERSION=" 16.20.2" # Later version with Web API support for Ubuntu 18.04
65- echo " GLIBC $GLIBC_VERSION supports Node.js v16 (Ubuntu 18.04 compatible with Web APIs)"
66- elif [[ $( echo " $GLIBC_VERSION 2.17" | awk ' {print ($1 >= $2)}' ) == 1 ]]; then
67- REQUIRED_NODE_VERSION=" 16"
68- NODE_SETUP_SCRIPT=" setup_16.x"
69- MANUAL_NODE_VERSION=" 16.20.2"
70- echo " GLIBC $GLIBC_VERSION supports Node.js v16"
50+ if [[ $( echo " $GLIBC_VERSION 2.35" | awk ' {print ($1 >= $2)}' ) == 1 ]]; then
51+ REQUIRED_NODE_VERSION=" 20"
52+ NODE_SETUP_SCRIPT=" setup_20.x"
53+ MANUAL_NODE_VERSION=" 20.17.0"
54+ echo " GLIBC $GLIBC_VERSION supports Node.js v20 (Ubuntu 22.04/24.04 compatible)"
7155else
72- REQUIRED_NODE_VERSION=" 14"
73- NODE_SETUP_SCRIPT=" setup_14.x"
74- MANUAL_NODE_VERSION=" 14.21.3"
75- echo " GLIBC $GLIBC_VERSION requires older Node.js v14"
56+ echo " ERROR: Only Ubuntu 22.04/24.04 (GLIBC 2.35+) is supported."
57+ exit 1
58+ fi
7659fi
7760
7861if command -v node > /dev/null 2>&1 ; then
@@ -365,8 +348,8 @@ echo " 2. Extract: tar xzf claude-installer.tar.gz"
365348echo " 3. Install: ./claude-installer/install.sh"
366349echo " "
367350echo " Requirements on target system:"
368- echo " - Ubuntu 18 .04 or higher (x64)"
369- echo " - GLIBC 2.17 + (included in Ubuntu 18 .04+ )"
351+ echo " - Ubuntu 22 .04 or 24.04 (x64)"
352+ echo " - GLIBC 2.35 + (included in Ubuntu 22 .04/24.04 )"
370353echo " - No Node.js installation required!"
371354echo " - All dependencies included!"
372355echo " "
0 commit comments