add archlinux install
This commit is contained in:
69
install.sh
69
install.sh
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
# ServerGuard 安装脚本
|
||||
# 支持 Debian/Ubuntu 和 CentOS/RHEL
|
||||
# 支持 Debian/Ubuntu、CentOS/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"
|
||||
|
||||
Reference in New Issue
Block a user