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
相关产品推荐
相关产品推荐

