在日常的 Linux 系统维护中,频繁地安装、更新或卸载软件包是一项重复性高但又必不可少的工作。如果你是一名系统管理员、开发者,甚至是刚入门的 Linux 小白,掌握 Linux 软件包自动化 技术将极大提升你的工作效率。
本文将手把手教你如何使用 Shell 脚本结合 APT(Debian/Ubuntu)或 YUM/DNF(CentOS/RHEL/Fedora)来实现APT自动化和YUM脚本管理,最终达成Shell脚本打包的目标——只需运行一个脚本,就能完成整套软件环境的部署!
一、为什么需要自动化?
手动执行 apt install 或 yum install 在单台机器上尚可接受,但当你面对几十甚至上百台服务器时,逐一手动操作不仅效率低下,还容易出错。通过编写自动化脚本,你可以:
- 批量部署开发环境
- 统一软件版本
- 减少人为失误
- 快速恢复系统状态
二、准备工作
确保你有一台运行以下任一系统的 Linux 机器:
- Ubuntu / Debian(使用 APT 包管理器)
- CentOS / Rocky Linux / Fedora(使用 YUM 或 DNF)
并拥有 sudo 权限。
三、编写通用自动化脚本
下面是一个跨发行版的 Shell 脚本示例,它能自动识别系统类型并执行相应的软件包安装命令。
#!/bin/bash# 检测系统类型if [ -f /etc/os-release ]; then . /etc/os-release OS=$IDelse echo "无法识别操作系统" exit 1fi# 定义要安装的软件包列表PACKAGES="git curl wget vim htop"# 根据系统类型执行安装if [[ "$OS" == "ubuntu" || "$OS" == "debian" ]]; then echo "检测到 Debian/Ubuntu 系统,使用 APT..." sudo apt update -y sudo apt install -y $PACKAGESelif [[ "$OS" == "centos" || "$OS" == "rhel" || "$OS" == "fedora" || "$OS" == "rocky" ]]; then if command -v dnf &> /dev/null; then echo "检测到 DNF,使用 DNF 安装..." sudo dnf install -y $PACKAGES else echo "使用 YUM 安装..." sudo yum install -y $PACKAGES fielse echo "不支持的操作系统: $OS" exit 1fiecho "✅ 所有软件包已成功安装!" 四、如何使用这个脚本?
- 将上述代码保存为
auto-install.sh - 赋予执行权限:
chmod +x auto-install.sh - 运行脚本:
./auto-install.sh
运行后,脚本会自动判断你的 Linux 发行版,并调用对应的包管理器安装预设的软件(如 git、curl、vim 等)。你可以根据实际需求修改 PACKAGES 变量中的内容。
五、进阶技巧:参数化与日志记录
为了让脚本更灵活,你可以添加命令行参数或记录安装日志:
# 添加日志功能(在脚本开头加入)LOGFILE="/var/log/auto-install.log"exec &> >(tee -a "$LOGFILE")# 或者允许用户传入自定义包名if [ $# -gt 0 ]; then PACKAGES="$*"fi 六、总结
通过本文,你已经掌握了 Linux 软件包自动化 的核心方法。无论是使用 APT 还是 YUM/DNF,只要写好一个通用脚本,就能在不同环境中快速部署所需软件。这不仅适用于个人开发机,也广泛应用于 DevOps 自动化、云服务器初始化等场景。
记住关键词:APT自动化、YUM脚本管理、Shell脚本打包——它们是你迈向高效运维的第一步!
小提示:在生产环境中使用前,请务必在测试机上验证脚本行为,避免意外中断服务。

