news 2026/3/16 6:40:15

运维必备:5大Linux包管理工具深度解析(附Ansible实战脚本)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
运维必备:5大Linux包管理工具深度解析(附Ansible实战脚本)

Linux各发行版中广泛使用的包管理工具让人眼花缭乱。本文将系统性地介绍最常见的包管理器:yum、dnf、rpm、apt 、zypper等,涵盖安装源配置、在线,离线包安装、卸载方法,以及Ansible自动化中的常见使用方法。

📦 包管理工具适用系统概览

工具

适用系统

起始版本/引入背景

yum

CentOS 6/7, RHEL 6/7

RHEL5起默认使用

dnf

CentOS 8+, RHEL 8+

RHEL8起替代yum 成为默认工具

rpm

所有基于 RPM 的系统

RedHat Linux 最初引入

apt

Ubuntu, Debian

Debian 1.1 起引入,Ubuntu 延续使用

zypper

SUSE, openSUSE

openSUSE 默认工具,支持依赖自动处理

🧰Yum(Yellowdog Updater Modified)

yum是CentOS、RHEL和FEDORA系统下的软件管理神器。它基于rpm包进行管理,能够自动从指定的服务器(YUM源)下载RPM包并安装。与rpm命令相比,YUM能够自动解决包之间的依赖关系,让软件安装更加简单.

  • 常规用法

yum search vim # 搜索软件包 yum info vim # 查看软件包信息 yum install vim # 在线安装 yum list installed # 列出已安装软件包 yum list updates # 列出可更新软件包 yum remove vim # 卸载 #离线安装 yum install vim-x.x..x.rpm # 安装本地包 yum localinstall vim-x.x..rpm # 自动处理依赖,centos8后被install代替 #只下载不安装,用于离线环境安装 sudo yum install --downloadonly --downloaddir=/tmp/nginx_packages nginx #软件包更新 sudo yum update # 清理缓存 yum clean all yum makecache
  • yum源

配置文件路径:/etc/yum.repos.d/*.repo

[base] # 仓库ID(唯一标识) name=CentOS-$releasever Base # 可读名称 baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/ enabled=1 # 是否启用(1=启用,0=禁用) gpgcheck=1 # 是否检查GPG签名 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 # 公钥路径

常见yum源类型

仓库ID

用途

是否默认启用

Base

核心系统软件包

Updates

安全更新和 Bug 修复

Extras

附加软件(如开发工具)

EPEL

额外软件包(需手动安装)

Remi

新版 PHP/MySQL 等(第三方)

Docker CE

Docker 官方仓库

国内常见yum源地址

yum源提供商

地址

阿里云

https://mirrors.aliyun.com/repo/

清华大学

https://mirrors.tuna.tsinghua.edu.cn/help/centos/

华为云

https://mirrors.huaweicloud.com

Ansible 示例

--- - name: 管理 Nginx 服务 hosts: web_servers become: yes # 使用 root 权限 tasks: - name: 安装 EPEL 仓库 yum: name: epel-release state: present - name: 安装最新版 Nginx yum: name: nginx state: latest enablerepo: epel notify: 启动 Nginx # 触发 handler - name: 确保防火墙放行 HTTP firewalld: service: http state: enabled permanent: yes immediate: yes handlers: - name: 启动 Nginx service: name: nginx state: started enabled: yes

🧰DNF(Dandified YUM)

DNF 是新一代 RPM 包管理器(Fedora 22+、RHEL 8+、CentOS 8+ 的默认工具),替代传统的 YUM,提供更快的速度和更好的依赖解决能力。以下是核心用法:

基础操作

功能示例

安装软件包

sudo dnf install nginx

卸载软件包

sudo dnf remove nginx

查看可更新包

dnf check-update

更新所有包

sudo dnf update

等价于update

sudo dnf upgrade

搜索软件包

dnf search "python3.*"

查看包信息

dnf info nginx

列出软件包

dnf list installed

仓库管理

命令

举例

查看已启用仓库

dnf repolist

查看所有仓库(含禁用)

dnf repolist all

添加仓库

dnf config-manager --add-repo

dnf源配置和yum相同,在/etc/yum.repos.d/目录

- name: 安装 Apache 服务 hosts: webservers become: true tasks: - name: 安装 httpd dnf: name: httpd state: present - name: 启动并设置 httpd 开机自启 systemd: name: httpd enabled: true state: started

🧱 RPM(RedHat Package Manager)

rpm是基于 Red Hat 系统的 Linux 发行版(如 RHEL、CentOS、Rocky、AlmaLinux)中常用的包管理工具,用于安装、卸载、查询、验证和管理 .rpm 软件包。

# 查询操作 rpm -qa # 查询所有安装的包 rpm -q chrony # 查询某个包是否安装 rpm -qi chrony # 查看某个包的详细信息 rpm -ql chrony # 查看包安装的文件路径 rpm -qf /path/to/file # 查询指定文件属于哪个包 [root@localhost $]# rpm -qf /etc/chrony.conf chrony-3.5-3.p01.ky10.aarch64

安装和卸载操作

rpm -ivh <package>.rpm # 安装 rpm -Uvh <package>.rpm # 升级 rpm -e <package> # 卸载
🛠️ APT(Advanced Package Tool)

apt是Debian系列发行版的高级包管理工具,它基于.deb格式的软件包,负责自动处理依赖关系、下载安装包及升级维护。

  • - apt常见命令及使用场景

sudo apt update #更新软件包索引(不安装软件) sudo apt upgrade #升级所有已安装软件包 sudo apt install <package> #安装软件包 sudo apt remove <package> #删除软件但保留配置文件 sudo apt purge <package> #删除软件及其配置文件 sudo apt autoremove #删除无用的依赖包 sudo apt list --installed #列出所有已安装包 sudo apt show <package> #显示软件包详细信息 sudo apt search <keyword> #搜索包含关键字的包
  • deb包离线安装安装

  • 配置国内镜像源

替换国内镜像源 /etc/apt/sources.list 示例(以 Ubuntu 22.04 为例):

# 备份原始文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 使用中科大镜像 sudo sed -i 's|http://.*.ubuntu.com|https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list sudo apt update

替换后执行apt update更新

  • Ansible 示例

- name: 离线安装 .deb 文件 hosts: debian become: yes tasks: - name: 拷贝 deb 包 copy: src: ./nginx_1.18.0-0ubuntu1_amd64.deb dest: /tmp/nginx.deb - name: 安装 deb 包 apt: deb: /tmp/nginx.deb

FAQ:锁冲突解决方案

# 报错Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend) 解决方案 锁冲突: sudo rm /var/lib/dpkg/lock-frontend sudo dpkg --configure -a 修复依赖: sudo apt install -f

🛠️zypper使用

zypper是 openSUSE 和 SUSE Linux Enterprise (SLE) 系统中使用的命令行包管理工具,它基于 libzypp 库,功能强大,支持仓库管理、包安装、更新、搜索等

注:SUSE与CentOS的.rpm并不完全兼容,尽量不要用 CentOS 的.rpm包在 zypper 环境中安装

# 包安装卸载 zypper install <package> # 安装包 zypper remove <package> # 卸载包 zypper search <package> # 搜索包 zypper update # 更新所有包 # 列出软件仓 zypper lr zypper repos
  • 离线安装

联网的机器上下载 方法 1:使用 zypper download(推荐) 安装zypper-download工具(部分系统默认已安装) sudo zypper install zypper-download zypper download --resolve-deps htop #下载某个包及依赖项,例如下载 htop到当前目录 方法 2:使用 zypper install --download-only sudo zypper install --download-only --no-recommends --dry-run --auto-agree-with-licenses htop 注:该命令仅模拟下载依赖项,实际下载需搭配缓存路径使用。一般用于调试或手动复制缓存文件(/var/cache/zypp/packages/) 在目标服务器使用 zypper 离线安装 sudo zypper --non-interactive install *.rpm #安装所有离线包 sudo zypper --non-interactive install ./nginx—xxxx.rpm #指定某个包:
  • 添加安装源

zypper ar -f http://mirror.tuna.tsinghua.edu.cn/opensuse/distribution/leap/15.4/repo/oss/ Tsinghua-OSS zypper refresh zypper se -f ls # 查询命令属于哪个包
  • ansible使用举例

- name: 安装和管理 SUSE 软件包 hosts: suse_group become: yes tasks: - name: 安装 htop 包 ansible.builtin.zypper: name: htop state: present - name: 卸载某个包 ansible.builtin.zypper: name: apache2 state: absent - name: 更新系统 ansible.builtin.zypper: name: '*' state: latest

总结

在 Linux 系统中,包管理工具种类多样,各具优势,需根据发行版选择合适工具:

  • RHEL/CentOS 系列推荐使用yum或新版的dnf,配合rpm可进行更精细的包管理;

  • Ubuntu/Debian 系列则以apt系统最为高效、便捷,生态成熟、使用广泛。

同时,借助 Ansible 可以实现跨主机、跨系统的批量自动化部署,大幅提升运维效率,是构建高可用运维体系的核心工具之一。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 17:24:24

信赖的广州太赫兹足疗仪源头厂家哪个公司好

随着健康消费升级&#xff0c;太赫兹足疗仪因深层养生的特性成为养生市场的热门品类&#xff0c;不少中小品牌、创业者在寻找源头厂家时&#xff0c;常陷入“技术不足、代工繁琐、合规存疑”的困境。在广州&#xff0c;广州市浩能电子科技有限公司&#xff08;简称浩能&#xf…

作者头像 李华
网站建设 2026/3/15 23:16:41

Python Web框架的首选:FastAPI讲解

文章目录一、FastAPI 是什么&#xff1f;二、为什么 FastAPI 会火&#xff1f;2.1 性能接近 Node / Go2.2 类型即文档&#xff0c;文档即接口2.3 内置 Swagger / ReDoc三、一个最小 FastAPI 应用3.1 安装3.2 创建 main.py3.3 启动服务四、请求参数详解4.1 路径参数4.2 Query 参…

作者头像 李华
网站建设 2026/3/15 13:33:48

InVivoMAb Anti-Mouse CD4:从基础免疫研究到转化医学应用的科研利器

在免疫学研究领域&#xff0c;抗体试剂是探索细胞功能、信号通路和疾病机制的关键工具。其中&#xff0c;针对小鼠CD4分子的单克隆抗体&#xff08;InVivoMAb anti-mouse CD4&#xff09;因其高特异性与强效中和能力&#xff0c;已成为众多科研人员的首选。作为该领域的领先品牌…

作者头像 李华
网站建设 2026/3/15 21:15:26

<span class=“js_title_inner“>周涛结束了和丈夫的12年婚姻,她说:这段婚姻太痛苦了,让我身心俱疲</span>

在大众眼中&#xff0c;周涛宛如一颗璀璨的星辰&#xff0c;在主持界熠熠生辉。她以优雅的气质、专业的能力和亲和的形象&#xff0c;成为无数人心中的偶像。然而&#xff0c;光鲜亮丽的背后&#xff0c;她的情感生活却历经波折。周涛结束了与丈夫长达12年的婚姻&#xff0c;这…

作者头像 李华