Update tools.func
This commit is contained in:
parent
c8a299e401
commit
b159d519b2
@ -3322,26 +3322,17 @@ function setup_nodejs() {
|
|||||||
# Clean up legacy installations (nvm, etc.)
|
# Clean up legacy installations (nvm, etc.)
|
||||||
cleanup_legacy_install "nodejs"
|
cleanup_legacy_install "nodejs"
|
||||||
|
|
||||||
# Set APT priority FIRST to prevent Debian nodejs from being installed
|
# CRITICAL: Remove ALL Debian nodejs packages BEFORE adding NodeSource repo
|
||||||
cat >/etc/apt/preferences.d/nodesource <<'EOF'
|
# This prevents conflicts during dependency resolution
|
||||||
Package: nodejs
|
if dpkg -l 2>/dev/null | grep -qE "^ii.*(nodejs|libnode|node-cjs|node-acorn|node-balanced|node-brace|node-minimatch|node-undici|node-xtend|node-corepack)"; then
|
||||||
Pin: origin deb.nodesource.com
|
msg_info "Removing Debian-packaged Node.js and dependencies"
|
||||||
Pin-Priority: 600
|
|
||||||
|
|
||||||
Package: *
|
|
||||||
Pin: origin deb.nodesource.com
|
|
||||||
Pin-Priority: 600
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Remove any existing Debian nodejs BEFORE adding NodeSource repo
|
|
||||||
if dpkg -l 2>/dev/null | grep -q "^ii.*nodejs"; then
|
|
||||||
msg_info "Removing Debian-packaged Node.js (conflicts with NodeSource)"
|
|
||||||
$STD apt purge -y nodejs nodejs-doc libnode* node-* 2>/dev/null || true
|
$STD apt purge -y nodejs nodejs-doc libnode* node-* 2>/dev/null || true
|
||||||
$STD apt autoremove -y 2>/dev/null || true
|
$STD apt autoremove -y 2>/dev/null || true
|
||||||
|
$STD apt clean 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install dependencies (now protected by APT pinning)
|
# Remove any APT pinning (not needed if Debian nodejs is purged)
|
||||||
ensure_dependencies curl ca-certificates gnupg
|
rm -f /etc/apt/preferences.d/nodesource 2>/dev/null || true
|
||||||
|
|
||||||
# Prepare repository (cleanup + validation)
|
# Prepare repository (cleanup + validation)
|
||||||
prepare_repository_setup "nodesource" || {
|
prepare_repository_setup "nodesource" || {
|
||||||
@ -3349,12 +3340,15 @@ EOF
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Setup repository
|
# Setup NodeSource repository BEFORE installing dependencies
|
||||||
manage_tool_repository "nodejs" "$NODE_VERSION" "https://deb.nodesource.com/node_${NODE_VERSION}.x" "https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key" || {
|
manage_tool_repository "nodejs" "$NODE_VERSION" "https://deb.nodesource.com/node_${NODE_VERSION}.x" "https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key" || {
|
||||||
msg_error "Failed to setup Node.js repository"
|
msg_error "Failed to setup Node.js repository"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Now install dependencies (NodeSource repo is already active, no Debian nodejs available)
|
||||||
|
ensure_dependencies curl ca-certificates gnupg
|
||||||
|
|
||||||
# Wait for repo to settle
|
# Wait for repo to settle
|
||||||
sleep 2
|
sleep 2
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user