You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian与RHEL通用脚本:检查包是否安装,未安装则自动安装

跨Debian/RHEL系的通用软件安装检查脚本

当然可以实现,下面是一个能同时适配Debian(如Ubuntu、Debian)和RHEL(如CentOS、RHEL)系发行版的Bash脚本,它会自动识别系统所属发行版,对应使用合适的包管理器完成软件的检查与自动安装:

#!/bin/bash

# 定义要检查/安装的软件包名,可根据需求修改
PACKAGE="nginx"

# 检查是否以root用户运行,安装软件需要权限
if [[ $EUID -ne 0 ]]; then
    echo "错误:请以root用户身份运行此脚本"
    exit 1
fi

# 检查Debian系系统(dpkg包管理器)
if command -v dpkg &> /dev/null; then
    # 检查软件是否已安装
    if dpkg -l | grep -q "^ii  $PACKAGE "; then
        echo "$PACKAGE 已安装"
    else
        echo "$PACKAGE 未安装,开始安装..."
        apt update && apt install -y "$PACKAGE"
        # 验证安装结果
        if dpkg -l | grep -q "^ii  $PACKAGE "; then
            echo "$PACKAGE 安装成功"
        else
            echo "$PACKAGE 安装失败,请检查软件源配置"
            exit 1
        fi
    fi
# 检查RHEL系系统(yum包管理器)
elif command -v yum &> /dev/null; then
    # 检查软件是否已安装
    if rpm -q "$PACKAGE" &> /dev/null; then
        echo "$PACKAGE 已安装"
    else
        echo "$PACKAGE 未安装,开始安装..."
        yum install -y "$PACKAGE"
        # 验证安装结果
        if rpm -q "$PACKAGE" &> /dev/null; then
            echo "$PACKAGE 安装成功"
        else
            echo "$PACKAGE 安装失败,请检查软件源配置"
            exit 1
        fi
    fi
else
    echo "错误:不支持当前系统,未找到dpkg或yum包管理器"
    exit 1
fi

脚本关键说明

  • 权限校验:脚本开头会检查当前用户是否为root,避免因权限不足导致安装失败
  • 发行版自动识别:通过检测dpkg或yum命令是否存在,判断系统属于Debian还是RHEL系
  • 安装状态检查:Debian系用dpkg -l配合grep判断软件是否已安装;RHEL系用rpm -q检查
  • 自动安装逻辑:未安装时会先更新软件源(Debian系),再自动确认安装(-y参数)
  • 结果验证:安装完成后会再次检查软件状态,确保安装成功

使用时只需将脚本中的PACKAGE="nginx"替换为你需要的软件包名即可。

内容的提问来源于stack exchange,提问作者qemiko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:05:30