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

CentOS之软件包管理系统

CentOS之软件包管理系统

在 CentOS Linux 系统中,管理软件包是安装、更新和维护软件的关键任务。CentOS 主要使用 YUM (Yellowdog Updater, Modified) 作为其高级包管理器。然而,在较新的 CentOS 版本(如 CentOS 8 及更高版本)中,DNF (Dandified YUM) 已经取代 YUM 成为默认的包管理器。此外,底层的 RPM (Red Hat Package Manager) 工具在某些特定场景下仍然很有用。本文将深入探讨这三种工具在 CentOS 中的应用。

镜像源 (Repositories) 的配置与更新

镜像源是 CentOS 系统获取软件包的服务器。配置合适的镜像源能够显著提高软件包的下载速度和安装效率。

配置镜像源

CentOS 的镜像源配置文件通常位于 /etc/yum.repos.d/ 目录下,以 .repo 结尾。你可以编辑这些文件来修改或添加镜像源。备份原始文件是一个好习惯。

常用的国内 CentOS 镜像源包括:

  • 阿里云:http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
  • 清华大学:https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
  • 网易:http://mirrors.163.com/centos/$releasever/os/$basearch/
  • 中科大:https://mirrors.ustc.edu.cn/centos/$releasever/os/$basearch/

操作步骤(以阿里云为例):

  1. 备份原有的 .repo 文件:

    • 首先创建一个文件夹,用于存放备份文件
    mkdir yum_repo_back
    
    • 之后把当前文件都移动到备份文件夹里
    cp Centos-linux-* yum_repo_back
    
  2. 删除现有的repo文件

    rm -f Centos-linux-*
    
  3. 获取阿里云镜像源

    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
    或者
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
    
  4. 清理并重建 YUM/DNF 缓存:

    sudo yum clean all
    sudo yum makecache
    # 或者使用 dnf
    sudo dnf clean all
    sudo dnf makecache
    

更新软件包列表

在修改或添加镜像源后,你需要更新本地软件包列表,以获取最新的软件包信息。

sudo yum update
# 或者使用 dnf
sudo dnf update

常用软件包管理命令

以下将分别介绍 dnfyumrpm 的常用命令。在较新的 CentOS 系统中,请优先使用 dnf

使用 dnf (推荐)

  1. 安装软件包:

    sudo dnf install <软件包名称>
    # 例如:安装 httpd
    sudo dnf install httpd
    
  2. 重新安装软件包:

    sudo dnf reinstall <软件包名称>
    # 例如:重新安装 httpd
    sudo dnf reinstall httpd
    
  3. 升级软件包:

    • 升级单个软件包:

      sudo dnf update <软件包名称>
      
    • 升级所有可升级的软件包:

      sudo dnf upgrade
      
  4. 移除软件包:

    sudo dnf remove <软件包名称># 移除不再需要的依赖
    sudo dnf autoremove <软件包名称># 或者在移除后执行
    sudo dnf autoremove
    
  5. 查询软件包描述信息:

    dnf info <软件包名称>
    # 例如:查询 httpd 的描述信息
    dnf info httpd
    
  6. 列出软件包包含的文件信息:

    dnf list files <软件包名称>
    # 例如:列出 httpd 包含的文件
    dnf list files httpd
    
  7. 查询某个文件属于哪个 RPM 包:

    rpm -qf <文件路径>
    # 例如:查询 /usr/bin/ls 文件属于哪个软件包
    rpm -qf /usr/bin/ls
    
  8. 查看所有可用的仓库:

    sudo dnf repolist
    
  9. 列出指定仓库中的所有软件包:

    sudo dnf --disablerepo="*" --enablerepo=<仓库名称> list available
    # 例如:列出 base 仓库中的所有软件包
    sudo dnf --disablerepo="*" --enablerepo=base list available
    
  10. 查看软件包信息(来自仓库):

    sudo dnf info <软件包名称>
    
  11. 搜索软件包:

    sudo dnf search <关键字>
    # 例如:搜索与编辑器相关的软件包
    sudo dnf search editor
    
  12. 清除所有仓库缓存:

    sudo dnf clean all
    
  13. 检查可更新的软件包:

    sudo dnf check-update
    
  14. 查看系统中已经安装的软件包组:

    sudo dnf grouplist --installed
    
  15. 列出所有可用的软件包组:

    sudo dnf grouplist
    
  16. 安装指定的软件包组:

    sudo dnf group install <软件包组名称>
    # 例如:安装 "Development Tools" 软件包组
    sudo dnf group install "Development Tools"
    
  17. 移除指定的软件包组:

    sudo dnf group remove <软件包组名称>
    # 例如:移除 "Development Tools" 软件包组
    sudo dnf group remove "Development Tools"
    
  18. 查询指定的软件包组信息:

    sudo dnf group info <软件包组名称>
    # 例如:查询 "Development Tools" 软件包组的信息
    sudo dnf group info "Development Tools"
    

使用 yum (在较旧的 CentOS 系统上或作为 dnf 的别名)

yum 的命令与 dnf 非常相似,你可以将上述 dnf 命令中的 dnf 替换为 yum 来使用。例如:

sudo yum install <软件包名称>
sudo yum update
sudo yum remove <软件包名称>
sudo yum info <软件包名称>
sudo yum list files <软件包名称>
sudo yum repolist
sudo yum search <关键字>
sudo yum clean all
sudo yum check-update
sudo yum grouplist --installed
sudo yum group install <软件包组名称>
sudo yum group remove <软件包组名称>
sudo yum group info <软件包组名称>

使用 rpm (底层工具)

rpm 主要用于直接操作 .rpm 文件,通常在 yumdnf 无法满足需求时使用,或者用于安装本地下载的 .rpm 文件。

  1. 安装本地 .rpm 文件:

    sudo rpm -ivh <软件包文件名.rpm>
    # -i: 显示软件包信息
    # -v: 显示详细输出
    # -h: 显示安装进度条
    # --nodeps: 忽略依赖关系 (不推荐)
    
  2. 升级本地 .rpm 文件:

    sudo rpm -Uvh <软件包文件名.rpm>
    # -U: 升级软件包,如果未安装则安装
    
  3. 卸载软件包:

    sudo rpm -e <软件包名称>
    # --nodeps: 忽略依赖关系 (不推荐)
    
  4. 查询已安装软件包的信息:

    rpm -qi <软件包名称>
    
  5. 列出已安装软件包的文件信息:

    rpm -ql <软件包名称>
    
  6. 查询某个文件属于哪个已安装的 rpm 包:

    rpm -qf <文件路径>
    

总结

CentOS 提供了强大而灵活的软件包管理系统。通过熟练掌握 dnf(或 yum)和 rpm 这三种工具,你将能够轻松地在你的 CentOS 系统上安装、更新、卸载和管理各种软件包,保持系统的稳定和安全。在日常使用中,推荐优先使用 dnf,因为它提供了更好的性能和功能。希望本文能够帮助你更好地理解和使用 CentOS 的软件包管理系统。

相关文章:

  • Web端ER可视化
  • 元数据驱动的 AI 开发:从数据目录到模型训练自动化
  • Jetpack Room 使用详解(下)
  • 深度学习中的预训练与微调:从基础概念到实战应用全解析
  • JSP实现用户登录注册系统(三天内自动登录)
  • Unity中数据储存
  • w308汽车销售系统的设计与实现
  • 华为盘古OS深度评测:构建AI自进化系统的实践密码
  • 2025.04.26-淘天春招笔试题-第二题
  • DIFY 浅尝 - DIFY + Ollama 添加模型
  • 2025.04.26-美团春招笔试题-第三题
  • MQ消息的不可靠性发生情况与解决方案
  • 显示器关闭和鼠标键盘锁定工具
  • Pygame事件处理详解:键盘、鼠标与自定义事件
  • 树相关处理
  • 结合五层网络结构讲一下用户在浏览器输入一个网址并按下回车后到底发生了什么?
  • Eclipse 插件开发 1
  • 面试新收获-大模型学习
  • Python编程中的基本语句
  • 长短板理论——AI与思维模型【83】
  • 商务部:将积极会同相关部门加快推进离境退税政策的落实落地
  • 哈马斯官员:只要以军持续占领,哈马斯就不会放下武器
  • 印度媒体称印巴在克什米尔再次交火
  • 三大猪企去年净利润同比均较大幅度增长,资产负债率齐降
  • 全球84%的珊瑚礁已遭受白化事件影响
  • 最高法:侵犯著作权罪中的“复制发行”不包括单纯发行行为