Update Nlbench_beta.sh

This commit is contained in:
Jensfrank 2024-08-13 15:32:19 +08:00 committed by GitHub
parent 6dfa75f038
commit ebf7e3df30
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -113,10 +113,17 @@ detect_os() {
. /etc/lsb-release
os_type=$DISTRIB_ID
os_version=$DISTRIB_RELEASE
elif [ -f /etc/redhat-release ]; then
os_type=$(cat /etc/redhat-release | cut -d ' ' -f 1)
os_version=$(cat /etc/redhat-release | sed 's/.*release \([0-9\.]*\).*/\1/')
elif [ -f /etc/gentoo-release ]; then
os_type="gentoo"
os_version=$(cat /etc/gentoo-release | cut -d ' ' -f 5)
else
echo -e "${RED}无法检测操作系统类型和版本。${NC}"
return 1
os_type=$(uname -s)
os_version=$(uname -r)
fi
os_type=$(echo "$os_type" | tr '[:upper:]' '[:lower:]')
echo -e "${YELLOW}检测到的系统: $os_type $os_version${NC}"
}
@ -124,15 +131,14 @@ detect_os() {
update_system() {
detect_os || return 1
# 根据操作系统类型选择更新命令
case "${os_type,,}" in
ubuntu|debian|linuxmint|elementary|pop)
update_cmd="apt-get update"
upgrade_cmd="apt-get upgrade -y"
install_cmd="apt-get install -y"
;;
fedora|centos|rhel|ol|rocky|almalinux)
if [ "${os_version%%.*}" -ge 22 ] || [ "${os_version%%.*}" -ge 8 ]; then
centos|rhel|fedora|rocky|almalinux|openeuler)
if command -v dnf &>/dev/null; then
update_cmd="dnf check-update"
upgrade_cmd="dnf upgrade -y"
install_cmd="dnf install -y"
@ -157,6 +163,16 @@ update_system() {
upgrade_cmd="apk upgrade"
install_cmd="apk add"
;;
gentoo)
update_cmd="emerge --sync"
upgrade_cmd="emerge -uDN @world"
install_cmd="emerge"
;;
cloudlinux)
update_cmd="yum check-update"
upgrade_cmd="yum upgrade -y"
install_cmd="yum install -y"
;;
*)
echo -e "${RED}不支持的 Linux 发行版: $os_type${NC}"
return 1
@ -189,6 +205,20 @@ install_dependencies() {
# 安装依赖
local dependencies=("curl" "wget" "iperf3")
case "${os_type,,}" in
gentoo)
for dep in "${dependencies[@]}"; do
if ! emerge -p $dep &>/dev/null; then
echo -e "${YELLOW}正在安装 $dep...${NC}"
if ! sudo emerge $dep; then
echo -e "${RED}无法安装 $dep。请手动安装此依赖项。${NC}"
fi
else
echo -e "${GREEN}$dep 已安装。${NC}"
fi
done
;;
*)
for dep in "${dependencies[@]}"; do
if ! command -v "$dep" &> /dev/null; then
echo -e "${YELLOW}正在安装 $dep...${NC}"
@ -199,6 +229,8 @@ install_dependencies() {
echo -e "${GREEN}$dep 已安装。${NC}"
fi
done
;;
esac
echo -e "${GREEN}依赖项检查和安装完成。${NC}"
clear