#!/bin/bash # EM Script Library - Debian 12 系统部署脚本库 # 用于解决国内源配置和系统优化问题 set -e # 遇到错误立即退出 # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 日志函数 log_info() { echo -e "${BLUE}[INFO]${NC} $1" } log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1" } log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } # 检查是否为 root 用户 check_root() { if [[ $EUID -ne 0 ]]; then log_error "此脚本需要 root 权限运行" log_info "请使用 sudo bash $0 或切换到 root 用户" exit 1 fi } # 检查操作系统 check_os() { if [[ ! -f /etc/debian_version ]]; then log_error "此脚本仅支持 Debian 系统" exit 1 fi local version=$(cat /etc/debian_version | cut -d. -f1) if [[ $version -ne 12 ]]; then log_warning "此脚本针对 Debian 12 优化,当前版本: $version" fi log_success "检测到 Debian $version 系统" } # 显示帮助信息 show_help() { cat << EOF EM Script Library - Debian 12 系统部署工具 用法: $0 [选项] [模块] 选项: -h, --help 显示此帮助信息 -l, --list 列出所有可用模块 -v, --version 显示版本信息 -d, --debug 启用调试模式 模块: sources 配置国内软件源 packages 包管理相关操作 system 系统基础配置 network 网络优化配置 security 安全配置 all 执行所有模块 示例: $0 sources # 配置国内源 $0 sources aliyun # 使用阿里云源 $0 all # 执行所有配置 EOF } # 显示版本信息 show_version() { echo "EM Script Library v1.0.0" echo "针对 Debian 12 优化的系统部署工具" } # 列出可用模块 list_modules() { echo "可用模块:" echo " sources - 国内软件源配置" echo " packages - 包管理工具配置" echo " system - 系统基础配置" echo " network - 网络优化配置" echo " security - 安全配置" echo "" echo "使用方法: $0 <模块名>" } # 主函数 main() { local debug=false local module="" # 参数解析 while [[ $# -gt 0 ]]; do case $1 in -h|--help) show_help exit 0 ;; -v|--version) show_version exit 0 ;; -l|--list) list_modules exit 0 ;; -d|--debug) debug=true shift ;; -*) log_error "未知选项: $1" show_help exit 1 ;; *) module="$1" shift break ;; esac done # 调试模式 if [[ "$debug" == "true" ]]; then set -x log_info "调试模式已启用" fi # 检查环境 check_root check_os # 执行模块 case $module in sources) log_info "开始配置国内软件源..." bash scripts/sources/configure_sources.sh "$@" ;; packages) log_info "开始配置包管理工具..." bash scripts/packages/configure_packages.sh "$@" ;; system) log_info "开始系统基础配置..." bash scripts/system/configure_system.sh "$@" ;; network) log_info "开始网络优化配置..." bash scripts/network/configure_network.sh "$@" ;; security) log_info "开始安全配置..." bash scripts/security/configure_security.sh "$@" ;; all) log_info "开始执行完整配置流程..." bash scripts/sources/configure_sources.sh bash scripts/packages/configure_packages.sh bash scripts/system/configure_system.sh bash scripts/network/configure_network.sh bash scripts/security/configure_security.sh log_success "所有配置完成!" ;; "") log_error "未指定模块" list_modules exit 1 ;; *) log_error "未知模块: $module" list_modules exit 1 ;; esac } # 执行主函数 main "$@"