当前位置: 首页 > news >正文

Linux软件包管理

Linux软件包管理全指南

适用系统说明

  • RPM系:CentOS/RHEL(Yum/DNF)、Fedora(DNF)
  • Debian系:Debian/Ubuntu(APT/dpkg)
  • Arch系:Arch/Manjaro(Pacman)

一、Yum软件包管理器(RPM系核心工具)

核心特性

  • 专为Red Hat系设计的高级包管理器,自动解决依赖关系
  • 基于RPM底层工具,通过仓库元数据实现智能依赖分析

核心操作命令

  1. 安装软件(含自动依赖处理)

    yum install httpd -y  # -y跳过确认
    yum localinstall /path/to/package.rpm  # 安装本地RPM包
    
  2. 卸载与清理

    yum remove httpd  # 仅卸载软件
    yum autoremove  # 清除孤立依赖包
    yum clean all  # 清理缓存(/var/cache/yum)
    
  3. 升级管理

    yum check-update  # 检查可升级包
    yum update  # 常规升级(保留旧内核)
    yum upgrade  # 激进升级(可能移除旧内核)
    
  4. 信息查询

    yum list installed | grep nginx  # 查询已安装
    yum info nginx  # 显示包详细信息
    yum provides /usr/sbin/nginx  # 查询文件所属包
    

高级技巧

  • 更换国内源:替换/etc/yum.repos.d/下的仓库文件为阿里云/清华镜像源7
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    yum makecache  # 重建元数据缓存
    
  • 仓库管理
    yum repolist all  # 列出所有仓库状态
    yum-config-manager --add-repo=http://repo.url  # 添加新仓库
    

二、APT与dpkg(Debian/Ubuntu核心工具)

工具层级解析

  • 底层工具:dpkg(直接操作.deb文件,不处理依赖)
  • 高层工具:APT(自动解决依赖,管理远程仓库)

APT核心命令

# 仓库更新与维护
sudo apt update  # 刷新仓库索引(必须定期执行)
sudo apt-get autoclean  # 清理旧版本缓存# 安装与卸载
sudo apt install nginx=1.18.0-0ubuntu1  # 指定版本安装
sudo apt purge nginx  # 彻底删除软件及配置# 系统升级
sudo apt full-upgrade  # 处理依赖关系变更(等效旧版dist-upgrade)

dpkg关键操作

dpkg -i package.deb  # 手动安装本地deb包(需自行处理依赖)
dpkg -l 'nginx*'  # 通配符查询已安装包
dpkg-reconfigure nginx  # 重新配置已安装包

工具对比(APT vs apt-get)

功能传统命令新版APT命令优势
安装软件apt-get installapt install彩色进度条/精简输出3
搜索包apt-cache searchapt search结果高亮显示
显示包信息apt-cache showapt show关键信息优先展示

三、DNF(新一代RPM包管理器)

核心改进

  • 依赖解析算法:采用libsolv库,速度比Yum快30%
  • 事务历史:支持dnf history undo 6回滚操作

关键操作

dnf install --nogpgcheck package  # 跳过GPG验证
dnf module list  # 查看模块化软件流(如NodeJS多版本)
dnf downgrade package-1.2.3  # 降级到指定版本

四、跨发行版操作对比表

操作类型RHEL/CentOS (Yum/DNF)Debian/Ubuntu (APT)Arch (Pacman)
安装软件yum install httpdapt install apache2pacman -S apache
删除软件yum remove httpdapt purge apache2pacman -Rns apache
更新源yum makecacheapt updatepacman -Sy
搜索包yum search ‘^nginx’apt search nginxpacman -Ss nginx
查看包信息yum info nginxapt show nginxpacman -Si nginx
清理缓存yum clean allapt autocleanpacman -Scc

五、最佳实践与故障处理

  1. 依赖冲突解决

    • Debian系:aptitude提供交互式解决方案(按提示选择降级/删除)
    • RHEL系:yum deplist package查看完整依赖树
  2. 锁定软件版本

    # Yum/DNF
    yum versionlock add nginx
    # APT
    echo "nginx hold" | sudo dpkg --set-selections
    
  3. 离线安装方案

    • RPM系yumdownloader --resolve httpd下载包及依赖
    • Deb系apt-offline生成离线安装包集合
  4. 安全更新策略

    # 仅安装安全更新
    yum --security update  # RHEL
    unattended-upgrades -d  # Ubuntu
    

六、图形化管理工具推荐

  • RPM系:dnfdragora(DNF图形前端)
  • Debian系:Synaptic(支持仓库优先级调整)
  • 跨平台:Cockpit(Web管理界面,支持容器管理)

http://www.mrgr.cn/news/93215.html

相关文章:

  • HTTP 黑科技
  • uniapp:小程序将base64图片字符串保存到手机相册
  • 免费分享一个软件SKUA-GOCAD-2022版本
  • C++11中atomic
  • 大模型在呼吸衰竭预测及围手术期方案制定中的应用研究
  • 计算机网络核心知识点:信道容量、OSI模型与调制技术详解
  • 鸿蒙与DeepSeek深度整合:构建下一代智能操作系统生态
  • iOS安全和逆向系列教程 第8篇:iOS应用动态分析与Hook技术
  • iOS安全和逆向系列教程 第2篇: iOS系统架构详解 - 逆向工程的基石
  • iOS安全和逆向系列教程 第3篇:搭建iOS逆向开发环境 (上) - 工具链与基础配置
  • iOS安全和逆向系列教程 第5篇 iOS基础开发知识速览 - 理解你要逆向的目标
  • Django项目实战
  • C语音的常见概念
  • Leetcode 刷题记录 01 —— 哈希
  • 一键安装Nginx部署脚本之Linux在线安装Nginx,脚本化自动化执行服务器部署(附执行脚本下载)
  • C语言-----扫雷游戏
  • Docker新手入门(持续更新中)
  • python:pymunk + pygame 模拟六边形中小球弹跳运动
  • 【蓝桥杯单片机】第十二届省赛
  • 【STM32】玩转IIC之驱动MPU6050及姿态解算