add archlinux install

This commit is contained in:
zj
2026-03-02 14:46:28 +08:00
parent c4f4fefa0a
commit 5206b202b7
2 changed files with 376 additions and 37 deletions

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# ServerGuard 安装脚本
# 支持 Debian/UbuntuCentOS/RHEL
# 支持 Debian/UbuntuCentOS/RHEL 和 Arch Linux
echo "========================================"
echo "ServerGuard 安装脚本"
@@ -35,11 +35,17 @@ install_package() {
local pkg=$1
local pkg_manager=$2
if [ "$pkg_manager" = "apt" ]; then
apt-get install -y "$pkg" 2>/dev/null && return 0
else
yum install -y "$pkg" 2>/dev/null && return 0
fi
case "$pkg_manager" in
apt)
apt-get install -y "$pkg" 2>/dev/null && return 0
;;
yum)
yum install -y "$pkg" 2>/dev/null && return 0
;;
pacman)
pacman -S --noconfirm "$pkg" 2>/dev/null && return 0
;;
esac
FAILED_PACKAGES="$FAILED_PACKAGES $pkg"
return 1
@@ -142,6 +148,46 @@ install_redhat_deps() {
fi
}
# 安装 Arch Linux 依赖
install_arch_deps() {
echo "正在安装 Arch Linux 依赖..."
# 确保包数据库是最新的
pacman -Sy
# 核心依赖(必须)
CORE_PKGS="lshw dmidecode smartmontools lm_sensors ipmitool mdadm pciutils usbutils util-linux coreutils grep gawk sed"
# 可选依赖Arch 中大部分都在官方仓库或 AUR
# stress-ng 在官方仓库 community 中
OPTIONAL_PKGS="stress-ng memtester edac-utils fio nvme-cli"
echo "安装核心依赖..."
for pkg in $CORE_PKGS; do
install_package "$pkg" "pacman" || echo "警告: $pkg 安装失败"
done
echo "安装可选依赖..."
for pkg in $OPTIONAL_PKGS; do
install_package "$pkg" "pacman" || echo "注意: $pkg 安装失败(可选)"
done
# 检查是否安装了 stress-ng 或 stress
if ! command -v stress-ng &> /dev/null && ! command -v stress &> /dev/null; then
echo ""
echo "============================================"
echo "警告: 未安装压力测试工具"
echo "============================================"
echo "在 Arch Linux 上安装 stress-ng:"
echo " sudo pacman -S stress-ng"
echo ""
echo "或者从 AUR 安装 memtester:"
echo " yay -S memtester"
echo "============================================"
echo ""
fi
}
# 根据发行版安装
case "$OS" in
*Debian*|*Ubuntu*)
@@ -150,8 +196,19 @@ case "$OS" in
*CentOS*|*Red*Hat*|*Fedora*|*Alma*|*Rocky*)
install_redhat_deps
;;
*Arch*Linux*|*Manjaro*)
install_arch_deps
;;
*)
echo "不支持的操作系统: $OS"
echo ""
echo "ServerGuard 支持以下发行版:"
echo " - Debian/Ubuntu"
echo " - CentOS/RHEL 7/8/9"
echo " - Fedora"
echo " - Arch Linux / Manjaro"
echo " - AlmaLinux / Rocky Linux"
echo ""
echo "请手动安装以下工具:"
echo " lshw, dmidecode, smartmontools, lm-sensors, stress-ng, memtester"
echo " ipmitool, edac-utils, fio, mdadm, pciutils, usbutils"