#!/bin/bash # Alpine 相关处理 handle_alpine() { echo "检测到 Alpine,切换 apk 源..." sed -i 's#https\?://dl-cdn.alpinelinux.org/alpine#https://reg.martin98.com/repository/alpine#g' /etc/apk/repositories echo "安装 openntpd 和 vim..." apk update apk add --no-cache openntpd vim # 启动并设置 openntpd 开机自启 rc-service openntpd restart rc-update add openntpd default # 配置 vim 粘贴 if ! grep -q "set pastetoggle=" ~/.vimrc; then echo "set pastetoggle=" >> ~/.vimrc fi } # Debian/Ubuntu 相关处理 handle_debian_ubuntu() { APT_OPTIONS="-o Acquire::https::reg.martin98.com::Verify-Peer=false -o Acquire::https::reg.martin98.com::Verify-Host=false" lsb_dist=$(cat /etc/*release | grep ^ID= | cut -d= -f2) # ubuntu or debian? release=$(cat /etc/*release | grep VERSION_CODENAME | cut -d= -f2) # ubuntu(jammy oracular) debian(bookworm).... components=$([ "${lsb_dist=}" = "debian" ] && echo "main contrib non-free non-free-firmware" || ([ "${lsb_dist=}" = "ubuntu" ] && echo "main restricted universe multiverse")) # 删除 DEB822 格式 if [ -f /etc/apt/sources.list.d/${lsb_dist}.sources ]; then rm /etc/apt/sources.list.d/${lsb_dist}.sources fi # 配置镜像源 cat < /etc/apt/sources.list deb https://reg.martin98.com/repository/$lsb_dist $release $components deb https://reg.martin98.com/repository/$lsb_dist $release-updates $components deb https://reg.martin98.com/repository/$lsb_dist $release-backports $components EOF for RELEASE in "$@"; do echo "deb https://reg.martin98.com/repository/$lsb_dist $RELEASE $components" >> /etc/apt/sources.list done # 关闭交互式弹窗 echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections apt update $APT_OPTIONS && apt install $APT_OPTIONS -y ca-certificates curl && update-ca-certificates apt update && apt upgrade -y # 检查并安装 vim if ! command -v vim >/dev/null 2>&1; then apt install $APT_OPTIONS -y vim fi # NTP # 启用阿里云 ntp if pidof systemd >/dev/null 2>&1; then apt install chrony -y cat > /etc/chrony.conf <