linux-软件包管理-包管理工具(RedHat/CentOS 系)

news/2024/12/30 8:32:04/

Linux 软件包管理:包管理工具(RedHat/CentOS 系)

一、概述

在 Linux 操作系统中,软件包管理是系统维护的重要部分,它允许用户安装、升级、卸载和查询软件包。不同的 Linux 发行版使用不同的包管理工具。对于 RedHat 和 CentOS 系统,主要的包管理工具包括 RPMYUM。在较新的 CentOS 8 和 RedHat 8 中,YUM 进一步被 DNF 所取代。

  • RPM (Red Hat Package Manager) 是一种底层的包管理工具,用于安装、查询、删除软件包。
  • YUM (Yellowdog Updater, Modified) 是一个高层的包管理工具,它在 RPM 的基础上,提供了解决依赖关系和自动化安装的能力。
  • DNF (Dandified YUM) 是 YUM 的下一代版本,解决了 YUM 的一些性能和依赖处理问题。

二、RPM 包管理工具

1. RPM 介绍

RPM 是 RedHat 系列发行版中最基础的包管理工具,它以 .rpm 文件为单位管理软件。RPM 的主要特点是安装和管理已编译的软件包,而不会自动解决软件依赖关系,这意味着用户在安装软件时,必须自行确保依赖项的满足。

2. RPM 常用命令

1. 安装软件包

使用 RPM 安装 .rpm 文件,通常格式为:

rpm -ivh package.rpm

选项解释:

  • -i:表示安装。
  • -v:显示详细信息。
  • -h:以进度条形式显示安装过程。

示例:

rpm -ivh httpd-2.4.6-90.el7.centos.x86_64.rpm
2. 查询已安装的软件包

查询系统中已安装的软件包:

rpm -qa
  • -q:查询。
  • -a:显示系统中所有已安装的包。

查询特定包的信息:

rpm -qi package_name

例如,查询 httpd 包的信息:

rpm -qi httpd
3. 删除软件包

使用 -e 选项卸载指定的软件包:

rpm -e package_name

例如,卸载 httpd 软件包:

rpm -e httpd
4. 升级软件包

如果要升级已安装的软件包,使用 -U 选项:

rpm -Uvh package.rpm
  • -U:表示升级。若软件包尚未安装则会自动进行安装。
5. 验证软件包

使用 RPM 验证已安装的软件包的完整性:

rpm -V package_name

3. RPM 的局限性

虽然 RPM 是一个非常强大的工具,但它有一些缺点:

  • 依赖管理问题:RPM 并不会自动解决依赖问题。用户必须手动解决软件包之间的依赖关系,这可能导致所谓的“依赖地狱”问题。
  • 没有自动更新功能:RPM 只能手动安装和升级软件包,缺乏自动更新的功能。

为了解决这些问题,RedHat 和 CentOS 系列引入了更高级的包管理工具:YUM


三、YUM 包管理工具

1. YUM 介绍

YUM 是基于 RPM 的高层次包管理工具,它解决了 RPM 手动处理依赖关系的问题。YUM 可以自动解决软件包的依赖项,并且支持从指定的仓库下载和安装软件包。YUM 使得软件的安装、更新、卸载和查询更加简便。

2. YUM 常用命令

1. 安装软件包

使用 YUM 安装软件包非常简单:

yum install package_name

例如,安装 httpd 软件包:

yum install httpd

YUM 会自动从配置的仓库中下载所需的软件包,并解决依赖关系。

2. 更新软件包

更新系统中已安装的软件包:

yum update

如果只想更新某个软件包,可以指定包名:

yum update package_name
3. 卸载软件包

使用 remove 命令卸载指定的软件包:

yum remove package_name

例如,卸载 httpd

yum remove httpd
4. 列出可用的软件包

列出所有可用的软件包:

yum list available

可以列出某个特定软件包的信息:

yum list package_name
5. 搜索软件包

如果不确定软件包的具体名称,可以使用 search 进行搜索:

yum search keyword

例如,搜索与 http 相关的所有软件包:

yum search http
6. 清理缓存

YUM 会在本地缓存仓库中的软件包和元数据。可以使用以下命令清理缓存:

yum clean all
7. 查看包信息

使用 info 选项可以查看包的详细信息:

yum info package_name

例如,查看 httpd 的信息:

yum info httpd

3. YUM 仓库配置

YUM 依赖于配置的仓库,仓库可以是本地存储、网络服务器或者第三方仓库。默认情况下,CentOS 和 RedHat 系统会自带官方的 YUM 仓库,但用户可以根据需要添加第三方仓库。

仓库的配置文件通常位于 /etc/yum.repos.d/ 目录下,每个仓库对应一个 .repo 文件。

仓库配置示例:
[base]
name=CentOS-$releasever - Base
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
  • baseurl:仓库的 URL。
  • enabled:是否启用该仓库,1 表示启用。
  • gpgcheck:是否进行 GPG 校验,1 表示开启。

4. YUM 的优缺点

优点

  • 自动处理依赖关系。
  • 支持从网络仓库安装软件包。
  • 提供方便的系统升级和更新管理功能。

缺点

  • 对于大量软件包的更新,速度相对较慢。
  • 依赖仓库的速度和稳定性,如果仓库出现问题,可能会影响包的安装和更新。

四、DNF 包管理工具

1. DNF 介绍

DNF 是 YUM 的下一代版本,它在 YUM 的基础上做了很多改进,包括更快的性能、更好的依赖处理以及内存使用优化。CentOS 8 和 RedHat 8 以及之后的版本已经将 YUM 替换为 DNF。

2. DNF 与 YUM 的主要区别

  • 性能改进:DNF 在处理大量软件包时速度更快,资源占用更低。
  • 依赖解决优化:DNF 提供了更高效的依赖关系处理机制。
  • 插件架构:DNF 更容易通过插件进行扩展和自定义。

3. DNF 常用命令

DNF 的命令和 YUM 基本保持一致,大部分命令和选项都可以互换使用。例如:

  • 安装软件包:

    dnf install package_name
    
  • 更新系统:

    dnf update
    
  • 卸载软件包:

    dnf remove package_name
    
  • 清理缓存:

    dnf clean all
    

DNF 在兼容 YUM 命令的同时提供了更多的功能,比如处理速度更快、更智能的依赖处理和更灵活的插件系统。


五、总结

RedHat/CentOS 系列的包管理工具经历了从 RPM 到 YUM 再到 DNF 的演进,随着工具的进步,包管理的效率和功能也得到了显著提升。RPM 是最基础的工具,但依赖管理较为繁琐;YUM 通过自动化依赖解决和仓库机制极大简化了包管理过程;而 DNF 进一步优化了性能和依赖处理,成为现代 RedHat/CentOS 系统的默认包管理工具。

文章来源:https://blog.csdn.net/Flying_Fish_roe/article/details/142323191
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/1528865.html

相关文章

试图讲清楚spring的依赖注入

首先声明,依赖注入和反转容器是密不可分的,二者相互依存,依赖注入是实现反转控制的一种方式,允许对象在创建时将其依赖项提供给它,而不是在内部创建这些依赖项。这样可以增强代码的可测试性和可维护性。 spring依赖注入…

南大通用数仓-GCDW-学习-03-用户管理

目录 一、环境信息 二、概念 三、用户相关系统表 1、CLOUD.USER (1)字段解释 (2)示例 2、CLOUD.USER_CHECK (1)字段解释 (2)示例 四、实操 1、新建用户 (1&a…

RK3568笔记六十一:MIPI摄像头应用程序编写

若该文为原创文章,转载请注明原文出处。 使用V4L2方式采集摄像头。 使用正点原子的例程测试没通过,后面使用一口君的测试采集到了摄像头 记录过程。 详细参考Camera | 4.瑞芯微平台MIPI摄像头应用程序编写-CSDN博客 一、介绍 V4L2设备驱动框架向应用层提供了一套统一、标…

如何在Mac上查看剪贴板历史记录

重点摘要 macOS 内建的剪贴簿查看器可以透过 Finder 存取,但只能显示最近一次复制的内容,而且重新开机后就会清除。若要更进阶的剪贴簿管理,第三方 app 像是 CleanClip 提供了强大的功能和更好的组织方式。CleanClip 提供了全方位的剪贴簿历史管理解决方案,支援各种内容类型和…

Th:1.1 建立连接

基础讲解 1.TCP通信流程 基于TCP通信的Socket基本流程: 1.1 Socket 函数返回值&#xff1a;一个文件描述符&#xff1a; 特别的两个队列。 #include <sys/types.h> #include <sys/socket.h> //create an endpoint for communication int socket(int …

【服务器第二期】mobaxterm软件下载及连接

【服务器第二期】mobaxterm软件下载及连接 前言什么是SSH什么是FTP/SFTP mobaxterm软件介绍mobaxterm软件下载SSH登录使用方法1-新建ssh连接方法2-打开已有的ssh连接方法3-通过ssh命令建立连接 SFTP数据传输方法1-建立ssh连接后直接拖拽方法2-建立sftp连接再拖拽方法3-直接使用…

Selenium实现滑动滑块验证码验证!

背景&#xff1a;在部分的登录中有滑动验证码的验证&#xff0c;由于滑动验证码的缺块是随机的就导致实现起来比较困难&#xff01; 01、实现方案 模板匹配 通过openCV分析两个图片的相似度&#xff0c;获取两个相似度很高图片的坐标&#xff0c;从而计算两个图片的距离。 轮…

MTK zephyr平台:USB升级、枚举流程

一、USB升级流程 通过代码及log分析,当前平台升级过程在PL阶段进行 USB download相关代码 mtk/modules/hal/boot/preloader/platform/flashc/ mtk/modules/hal/boot/preloader/platform/board_name/flash/ mtk/modules/hal/boot/preloader/platform/board_name/src/drive…