From 72cf0a70941344b69030dae2172cbf1ea19148f5 Mon Sep 17 00:00:00 2001 From: admin <572701190@qq.com> Date: Tue, 28 Apr 2026 23:15:05 +0800 Subject: [PATCH] =?UTF-8?q?2026-04-28-22-55-15=20-=20=E6=B8=85=E7=90=86=20?= =?UTF-8?q?NodeSource=20=E5=AE=89=E8=A3=85=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nodesource_setup.sh | 121 -------------------------------------------- 1 file changed, 121 deletions(-) delete mode 100644 nodesource_setup.sh diff --git a/nodesource_setup.sh b/nodesource_setup.sh deleted file mode 100644 index 2d8bdb9..0000000 --- a/nodesource_setup.sh +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash - -# Logger Function -log() { - local message="$1" - local type="$2" - local timestamp=$(date '+%Y-%m-%d %H:%M:%S') - local color - local endcolor="\033[0m" - - case "$type" in - "info") color="\033[38;5;79m" ;; - "success") color="\033[1;32m" ;; - "error") color="\033[1;31m" ;; - *) color="\033[1;34m" ;; - esac - - echo -e "${color}${timestamp} - ${message}${endcolor}" -} - -# Error handler function -handle_error() { - local exit_code=$1 - local error_message="$2" - log "Error: $error_message (Exit Code: $exit_code)" "error" - exit $exit_code -} - -# Function to check for command availability -command_exists() { - command -v "$1" &> /dev/null -} - -check_os() { - if ! [ -f "/etc/debian_version" ]; then - echo "Error: This script is only supported on Debian-based systems." - exit 1 - fi -} - -# Function to Install the script pre-requisites -install_pre_reqs() { - log "Installing pre-requisites" "info" - - # Run 'apt update' - if ! apt update -y; then - handle_error "$?" "Failed to run 'apt update'" - fi - - # Run 'apt install' - if ! apt install -y apt-transport-https ca-certificates curl gnupg; then - handle_error "$?" "Failed to install packages" - fi - - if ! mkdir -p /usr/share/keyrings; then - handle_error "$?" "Makes sure the path /usr/share/keyrings exist or run ' mkdir -p /usr/share/keyrings' with sudo" - fi - - rm -f /usr/share/keyrings/nodesource.gpg || true - rm -f /etc/apt/sources.list.d/nodesource.list || true - rm -f /etc/apt/sources.list.d/nodesource.sources || true - - # Run 'curl' and 'gpg' to download and import the NodeSource signing key - if ! curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; then - handle_error "$?" "Failed to download and import the NodeSource signing key" - fi - - # Explicitly set the permissions to ensure the file is readable by all - if ! chmod 644 /usr/share/keyrings/nodesource.gpg; then - handle_error "$?" "Failed to set correct permissions on /usr/share/keyrings/nodesource.gpg" - fi -} - -# Function to configure the Repo -configure_repo() { - local node_version=$1 - - arch=$(dpkg --print-architecture) - if [ "$arch" != "amd64" ] && [ "$arch" != "arm64" ]; then - handle_error "1" "Unsupported architecture: $arch. Only amd64, arm64 are supported. Contact Nodesource for an extended support version https://nodesource.com/pages/contact-us.html." - fi - - cat < /dev/null -Types: deb -URIs: https://deb.nodesource.com/node_$node_version -Suites: nodistro -Components: main -Architectures: $arch -Signed-By: /usr/share/keyrings/nodesource.gpg -EOF - - # N|solid Config - echo "Package: nsolid" | tee /etc/apt/preferences.d/nsolid > /dev/null - echo "Pin: origin deb.nodesource.com" | tee -a /etc/apt/preferences.d/nsolid > /dev/null - echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/nsolid > /dev/null - - # Nodejs Config - echo "Package: nodejs" | tee /etc/apt/preferences.d/nodejs > /dev/null - echo "Pin: origin deb.nodesource.com" | tee -a /etc/apt/preferences.d/nodejs > /dev/null - echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/nodejs > /dev/null - - # Run 'apt update' - if ! apt update -y; then - handle_error "$?" "Failed to run 'apt update'" - else - log "Repository configured successfully." - log "To install Node.js, run: apt install nodejs -y" "info" - log "You can use N|solid Runtime as a node.js alternative" "info" - log "To install N|solid Runtime, run: apt install nsolid -y \n" "success" - fi -} - -# Define Node.js version -NODE_VERSION="22.x" - -# Check OS -check_os - -# Main execution -install_pre_reqs || handle_error $? "Failed installing pre-requisites" -configure_repo "$NODE_VERSION" || handle_error $? "Failed configuring repository"