Linux —— 管理软件包

发布于:2024-12-18 ⋅ 阅读:(11) ⋅ 点赞:(0)

前言:

本章节主要介绍RPM,YUM、DNF、Mysql8、等介绍及安装使用。相关的重点介绍在文章底部。

一、什么是PRM

  1. 基本定义

    • RPM是由Red Hat公司开发的软件包管理器,用于在Linux系统上安装、升级、卸载和管理软件包。
  2. 主要特点

    • 二进制文件格式:RPM包包含软件的二进制可执行文件,可以直接在系统中运行。
    • 依赖关系管理:RPM包声明了软件所依赖的其他软件包或库,确保系统上的依赖关系得到满足。
    • 标准化结构:每个RPM包都包含了一组严格定义的文件和目录结构,以确保软件正确地集成到系统中。
  3. 基本组成

    • 二进制包:可以直接安装在计算机中,而无需编译。
    • 源代码包:提供了一些源代码,可能会由RPM自动编译、安装。
    • Delta包:用于更新已安装的软件包,而不是完整的重新安装。
  4. 工作原理

    • 元数据信息:RPM包通过一组脚本和元数据信息将软件包打包起来,这些元数据包括软件名称、版本、依赖关系等。
    • 依赖项检查:安装过程中,RPM包管理器会首先检查系统是否已经安装了所有必需的依赖项,如果依赖项不存在,则会自动下载并安装缺少的依赖项。
    • 脚本执行:RPM包管理器会按照指定的顺序执行一组脚本,包括预安装脚本、安装脚本、升级脚本和卸载脚本,以确保软件包被正确地安装到系统中。

二、安装软件 —— rpm

使用rpm命令安装RPM软件包,RPM软件包可以理解为所有软件的统称

(一)rpm 选项 RPM软件包

(二)选项

  • -i, --install:安装一个或者多个新的软件包。
  • -v:显示更详细的信息。
  • -h:以#显示安装进度

(三)案例:安装Oracle的JDK

  1. 文件名解析

    • jdk:表示这是一个Java开发工具包。
    • 8u151:表示这是Java 8的一个特定版本,其中“8”代表Java的主要版本号,“u151”代表自Java 8发布以来的第151个更新版本。
    • linux:表明这个安装包是为Linux操作系统设计的。
    • x64:表示该安装包适用于64位的Linux系统。

如果已安装,会显示如下   ;如果没有软件包会导致安装失败,我们需要先下载JDK的软件包

下载JDK的软件包:在我的主页资源处

三、查询软件 —— rpm

(一)rpm 选项 RPM软件包

(二)选项

  1. -a:使用选项-a或--all查询所有已安装的软件包。

  2. -g:使用选项-g或--group查询有哪些软件包属于指定的类别,如Amusements/Games表示娱乐/游戏类。

  3. -f:使用选项-f或--file查询有哪些软件包拥有指定文件。

  4. -p:使用选项-p或--package查询指定RPM文件的信息。

  5. -l:使用选项-l或--list查询软件包的文件列表。

  6. -q:查询软件包信息

  7. -c:显示软件包的配置文件列表

  8. -d:显示软件包的文本文件列表

(三)案例1:查询jdk-8u151-linux-x64.rpm软件包中的文件

                        

(四)案例2:查询JDK是否安装

  1. rpm -qa:这个选项表示列出所有已安装的软件包。

  2. |:管道符号,用于将前一个命令的输出作为后一个命令的输入。

  3. grep jdk:这个命令用于搜索包含“jdk”字符串的行,即查找所有名称中包含“jdk”的软件包。

        

(五)案例3:查看已经安装的JDK的配置文件

四、卸载软件 —— rpm

rpm  -e  软件名

查询无结果,说明已经删除

五、yum 和 dnf

YUM和DNF是Linux操作系统中常用的软件包管理器,它们在依赖关系解决、性能以及配置文件等方面存在区别。以下是具体分析:

  1. 依赖关系解决

    • YUM:YUM能够处理软件包的依赖关系,但在某些复杂场景下,其依赖关系解析能力可能不如DNF。
    • DNF:DNF在处理依赖关系方面表现出更强的能力。它使用libsolv库进行依赖解析,由SUSE开发和维护,旨在提高性能。
  2. 性能

    • YUM:YUM在处理大量软件包时可能会受到网络带宽的限制,且不支持并行操作,这在一定程度上影响了其性能表现。
    • DNF:DNF在性能上优于YUM,主要体现在包查找速度和并行处理能力上。DNF支持并行操作,可以同时下载和安装多个软件包,从而提高了整体的包管理效率。
  3. 配置文件

    • YUM:YUM使用以.repo为后缀的配置文件来管理仓库和源信息,但还包含了一个主配置文件/etc/yum.conf,用于设置全局的yum配置选项。
    • DNF:DNF同样使用以.repo为后缀的配置文件来管理仓库和源信息。
  4. 用户界面

    • YUM:YUM的输出信息虽然也足够清晰,但在某些方面可能不如DNF直观。
    • DNF:DNF的输出信息更加清晰明了,提供了更多的终端输出信息,使得用户更容易理解和管理软件包。
  5. 兼容性

    • YUM:YUM在旧版本的Linux发行版中广泛使用,如CentOS 7及之前的版本。对于这些系统,YUM仍然是主要的包管理工具。
    • DNF:DNF是在CentOS 8及更高版本中取代了YUM作为默认包管理工具的。因此,在较新的Linux发行版中,DNF的兼容性更好。
  6. 功能扩展性

    • YUM:YUM的功能相对较为有限,主要侧重于基本的包管理操作。虽然YUM也支持一些扩展功能,但整体上不如DNF灵活。
    • DNF:DNF提供了更多的功能扩展性,支持插件系统。用户可以根据自己的需求编写插件来扩展DNF的功能,使其更加灵活和强大。

总的来说,DNF在依赖关系解决、性能、配置文件、用户界面、兼容性和功能扩展性等方面均优于YUM。然而,由于YUM已经存在了很长时间并且被广泛使用,许多现有的系统仍然使用YUM作为默认的软件包管理器。在选择使用哪个工具时,需要根据具体的需求和环境来决定。

两个命令的用法基本上都是一样的,大部分情况下dnf可以替换成yum,yum可以替换成dnf。

六、安装软件 —— dnf

(一)dnf  选项  命令  软件名称

(二)选项

  1. 基本选项

    • 帮助信息-h--help用于显示帮助信息。
    • 配置文件路径-c指定配置文件路径。
    • 最长等待时间-R设置命令最长等待时间。
    • 安静的操作-q执行安静的操作,减少输出。
    • 详细的操作-v显示详细的操作过程。
    • 自动确认-y对所有问题回答“是”。

(三)案例:安装telnet

1、如果出现安装失败等情况,可能是没联网或者不是root用户

  1. 定义

    • Telnet 是一种应用层协议,它提供了一种通过网络(通常是互联网或局域网)远程登录到其他计算机系统的方式。在这个协议下,用户可以在本地终端(如自己的电脑)上输入命令,这些命令会被发送到远程主机,远程主机执行命令后将结果返回给本地终端,就好像用户直接在远程主机上操作一样。
  2. 工作原理

    • 建立连接
      • Telnet 使用 TCP(传输控制协议)进行通信。当用户在本地计算机上启动 Telnet 客户端程序并指定要连接的远程主机的 IP 地址和端口号(默认的 Telnet 端口是 23)时,客户端会向远程主机发送一个连接请求。如果远程主机上的 Telnet 服务(服务器程序)正在运行并且接受了请求,就会建立一个 TCP 连接。
    • 数据传输
      • 连接建立后,用户在本地终端输入的字符会被封装成 Telnet 协议规定的数据格式,并通过 TCP 连接发送到远程主机。远程主机收到这些数据后,会对其进行解析,将命令传递给操作系统进行处理。操作系统执行命令后生成的结果(如文件列表、系统状态信息等),又会以 Telnet 协议格式通过 TCP 连接返回给本地终端进行显示。
    • 终止连接
      • 当用户完成操作并退出 Telnet 客户端或者远程主机上的服务端终止连接时,TCP 连接会被关闭。
  3. 历史与应用场景

    • 历史重要性
      • Telnet 是互联网早期广泛使用的远程登录工具。在网络管理、服务器维护等领域发挥了巨大作用,它使得系统管理员可以在本地对远程服务器进行各种操作,如配置系统、管理文件、启动或停止服务等。
    • 传统应用场景
      • 服务器管理:系统管理员可以通过 Telnet 远程登录到服务器,进行诸如修改服务器配置文件、安装软件、查看系统日志等操作。例如,在早期的 Unix 或 Linux 服务器管理中,Telnet 是常用的远程管理手段之一。
      • 网络设备配置:用于远程配置网络设备,如路由器、交换机等。网络工程师可以通过 Telnet 连接到设备的命令行界面,对设备进行设置,如设置端口参数、配置路由规则等。
    • 现在的局限性和替代方案
      • 安全问题:Telnet 协议在传输数据时是以明文形式(未加密)发送的,包括用户名、密码等敏感信息都很容易被网络上的攻击者截获。所以在安全性要求较高的环境下,它的使用受到限制。
      • 替代方案:如今,随着安全意识的提高,SSH(Secure Shell)协议已经在很大程度上替代了 Telnet。SSH 提供了加密的通信通道,能够有效保护数据安全,在远程登录和远程管理等场景中得到广泛应用。不过,在一些安全性要求不高或者内部封闭网络环境中,Telnet 仍然可能会被使用。

2、检查是否安装成功

七、更新软件 —— dnf

  1. dnf update:该命令用于更新系统上已安装的软件包,包括安全补丁、错误修复和功能改进等。它会检查可用的软件包仓库,并将系统中的软件包更新到最新版本,但不会升级已安装软件包的版本。

  2. dnf upgrade:该命令用于升级系统上已安装的软件包,包括更新到新的主要版本、次要版本或修订版本。dnf upgrade会检查可用的软件包仓库,并将系统中的软件包升级到最新版本,包括已安装软件包的版本升级。

八、卸载软件 —— dnf

-y:是确认的意思,可以不打入,就会弹出是否确认删除

remove:删除

九、清除缓存数据

  • 清除元数据缓存
    • dnf会缓存软件包仓库的元数据,这些元数据存储在本地磁盘上,用于快速查询软件包的信息。例如,当执行dnf check - update(检查更新)命令时,dnf首先会查看本地缓存的元数据,以确定哪些软件包有更新。dnf clean all会删除这些缓存的元数据,下次dnf需要这些信息时,它会重新从软件包仓库服务器下载最新的元数据。
  • 清除软件包缓存
    • 当通过dnf下载软件包时,软件包文件会被存储在本地缓存目录中。如果因为某些原因(如下载过程中断、软件包损坏等)需要重新下载软件包,dnf通常会先检查本地缓存是否有可用的软件包。dnf clean all会删除这些已经下载的软件包文件,释放磁盘空间。

十、安装MySQL8

(一)创建安装目录

因为我已经创建过了,所有显示存在

(二)下载MySQL8的RPM软件包

由于CentOS Stream9的yum源不包含mysql软件,所有我们要从mysql官网下载rpm包

注意(区分 1 和 l ):wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

(三)安装配置MySQL8的YUM源

为什么下载好mysql,还要安装yum源??

  1. 管理软件依赖关系的需要
    • 软件依赖的复杂性:MySQL 是一个复杂的数据库系统,它在运行过程中有很多依赖的软件包和库。例如,它可能依赖于一些系统库来进行网络通信、加密操作(如果启用了安全连接),还可能依赖其他的工具软件来进行配置管理和性能优化。通过安装 MySQL 的 yum 源,系统可以方便地利用 yum(或 dnf,在较新的系统中是 yum 的改进版)工具来自动处理这些复杂的依赖关系。
    • 自动解决依赖冲突:当你安装或升级 MySQL 时,yum 源中的软件包信息会帮助系统自动检查和解决软件包之间可能出现的依赖冲突。例如,如果 MySQL 8.0 需要一个特定版本的libssl库,而系统中已经安装了一个较旧的版本,yum 会根据 yum 源中的信息尝试更新libssl库到兼容的版本,或者采取其他合适的解决策略,以确保 MySQL 能够正确安装和运行。
  2. 方便软件更新和版本管理
    • 获取更新版本:MySQL 会不断发布安全更新、性能优化和新功能版本。通过安装官方的 yum 源,你可以方便地使用yum update(或dnf update)命令来检查和更新 MySQL 及其相关组件。例如,当 MySQL 发现了一个安全漏洞并发布了补丁版本,你只需要执行简单的更新命令,系统就会从 yum 源中获取最新的安全补丁版本进行安装,保持你的数据库系统的安全性。
    • 版本回滚和切换(在一定程度上):在某些情况下,你可能需要将 MySQL 回滚到之前的版本,或者切换到不同的分支版本(例如从开发版本切换到稳定版本)。有了 yum 源,你可以更方便地操作,因为 yum 源记录了软件的版本历史和仓库信息,能够帮助你实现这些复杂的版本管理操作。
  3. 保持系统一致性和标准化
    • 系统集成的便利性:在企业或大型数据中心环境中,通常会有一套标准化的软件安装和管理流程。通过使用 yum 源安装 MySQL,系统管理员可以确保所有服务器上的 MySQL 安装方式和版本管理方式保持一致。这样在进行系统维护、备份恢复、集群部署等操作时,可以遵循统一的标准,减少因为软件安装差异导致的问题。
    • 便于配置管理和自动化部署:如果使用配置管理工具(如 Ansible、Puppet 等)或者自动化部署脚本,yum 源提供了一个可靠的软件安装和更新渠道。这些工具可以方便地与 yum 交互,按照预先定义的规则安装和配置 MySQL,提高系统部署和管理的效率。

(四)安装MySQL8

(五)启动MySQL8的服务

1、查看服务程序状态

2、启动服务,再次查看

ctel+c可以提出

(六)登录MySQL

u是用户,p是密码,因为我们没有密码,不输入,回车即可

查看数据库

(七)设置数据库密码

输入exit 可以提出数据库

已经有了密码,如果不输入会错误:

输入密码:

十一、什么是YUM源:

  • 定义

    • Yum 源(Yellowdog Updater Modified repository)是在基于 Red Hat 系列操作系统(如 CentOS、RHEL)中用于软件安装、更新和管理的软件仓库源。它包含了大量的软件包以及这些软件包的相关信息,如软件名称、版本、依赖关系、文件列表等。
  • 组成部分

    • 软件包文件
      • 这是 yum 源的核心内容,包含了各种可以安装到系统中的软件包。这些软件包以 RPM(Red Hat Package Manager)格式存储,RPM 包本身是一种已经编译好的软件包,包含了软件的二进制文件、配置文件、文档等内容。例如,常见的服务器软件如 httpd(Apache HTTP 服务器)、MySQL 数据库等,它们的 RPM 包都会存放在 yum 源中。
    • 元数据文件
      • 用于描述软件包的信息,主要包括以下几类:
        • 软件包清单(package list):记录了 yum 源中所有软件包的名称、版本号、发布版本等基本信息。通过这些信息,yum 工具可以快速查询到某个软件是否在仓库中有可用版本。
        • 依赖关系(dependency):详细说明了每个软件包安装所需要依赖的其他软件包。例如,安装 MySQL 可能需要依赖libaio库和perl - DBI等软件包,这些依赖关系信息在元数据中会明确记录。当使用 yum 安装软件时,它会根据这些依赖关系自动安装所需的软件包。
        • 软件包位置(repository location):告知 yum 工具软件包在仓库中的具体存储位置,以便能够正确地下载和安装软件包。
  • 工作原理

    • 本地缓存与远程仓库交互
      • 当第一次使用 yum 命令(如yum install <package - name>)时,系统会从远程 yum 源服务器下载软件包的元数据并缓存到本地。之后,在进行软件安装、更新或查询操作时,yum 首先会检查本地缓存的元数据,以确定软件包的可用性和相关信息。如果本地缓存的元数据过期或者需要获取最新的软件包版本信息,yum 会自动从远程 yum 源服务器更新缓存。
    • 软件包安装和更新过程
      • 当用户执行软件包安装命令时,例如yum install httpd,yum 会根据本地缓存的元数据检查软件包的依赖关系。它会先确定需要安装的所有软件包(包括主软件包和其依赖的软件包),然后从远程 yum 源服务器下载这些软件包到本地缓存目录,最后按照正确的顺序安装这些软件包到系统中。在更新软件包时,过程类似,yum 会比较本地已安装软件包的版本和远程 yum 源中软件包的最新版本,然后进行更新操作。
  • yum 源的分类

    • 官方 yum 源
      • 由操作系统发行商提供,如 CentOS 官方 yum 源。它包含了经过操作系统发行商测试和认证的软件包,这些软件包与操作系统的兼容性有很好的保证,适合用于系统的基础软件安装和更新,如系统工具、服务器软件等。
    • 第三方 yum 源
      • 除了官方 yum 源外,还有许多第三方组织或厂商提供的 yum 源。例如,EPEL(Extra Packages for Enterprise Linux)是一个很受欢迎的第三方 yum 源,它提供了许多官方 yum 源没有包含的软件包,如一些开源的开发工具、图形软件等。另外,软件厂商也会提供自己的 yum 源,如 MySQL 官方 yum 源,用于安装和更新其特定的软件产品。这些第三方 yum 源可以扩展系统的软件安装范围,满足用户更多样化的需求。

十二、什么是dnf:

  1. 定义与背景

    • DNF(Dandified Yum)是下一代的 Yum 软件包管理器,主要用于基于 Red Hat 的 Linux 操作系统(如 CentOS、RHEL)中软件包的安装、更新、删除和查询等操作。它是在 Yum 的基础上进行了改进和优化,旨在提供更高效、更稳定的软件包管理体验。
  2. 功能特点

    • 高效的依赖关系处理
      • 像 Yum 一样,DNF 也能够自动处理软件包之间的依赖关系。当你安装或更新一个软件包时,DNF 会检查该软件包所依赖的其他软件包,并确保这些依赖包也被正确安装或更新。例如,在安装一个图形化桌面环境软件包时,它可能依赖于许多底层的库,如 X Window 系统相关的库、图形渲染库等,DNF 会自动下载并安装这些依赖库,以保证软件能够正常运行。
    • 快速的元数据缓存与查询
      • DNF 对软件包的元数据(如软件包名称、版本、描述、依赖关系等)进行了优化缓存。这使得在查询软件包是否有更新、搜索软件包等操作时能够更加快速。它会定期(根据配置)更新缓存的元数据,以确保获取到最新的软件包信息。例如,当执行dnf check - update命令来检查可更新的软件包时,DNF 能够快速地根据本地缓存的元数据和远程仓库的信息给出结果。
    • 更好的性能和稳定性
      • DNF 在软件包的下载和安装过程中,采用了更先进的算法和机制来提高性能。它能够更合理地利用系统资源,如网络带宽和磁盘 I/O,减少软件包下载和安装过程中的错误和冲突。例如,在同时安装多个相互关联的软件包时,DNF 会优化下载顺序和安装顺序,避免因为资源竞争导致的安装失败。
    • 支持多种仓库格式和配置
      • 它可以处理多种类型的软件包仓库,包括传统的 Yum 仓库以及其他兼容的仓库格式。用户可以方便地添加、删除和配置不同的仓库,以满足不同的软件安装需求。例如,用户可以添加官方的操作系统更新仓库、第三方软件仓库(如 EPEL)以及软件厂商自己的专用仓库,如 MySQL 官方仓库用于安装和更新 MySQL 软件。
  3. 常用命令示例

    • 软件包安装
      • dnf install <package - name>:用于安装指定的软件包。例如,dnf install firefox会安装 Firefox 浏览器软件包。如果软件包有依赖关系,DNF 会自动安装依赖的软件包。
    • 软件包更新
      • dnf update:用于更新系统中所有已安装的软件包。它会检查每个软件包是否有更新版本,然后下载并安装更新。也可以使用dnf update <package - name>来更新特定的软件包。
    • 软件包删除
      • dnf remove <package - name>:用于删除指定的软件包。例如,dnf remove firefox会将 Firefox 浏览器从系统中删除。同时,DNF 也会检查并删除该软件包安装时所依赖的其他软件包(如果这些依赖包没有被其他软件使用)。
    • 仓库管理
      • dnf repolist:用于列出系统中已经配置的所有软件包仓库。可以通过dnf config - manager --add - repo=<repository - url>来添加新的软件包仓库,其中<repository - url>是仓库的 URL 地址。

十三、yum和dnf 的区别:

  1. 性能方面

    • 元数据处理
      • yum:在处理软件包元数据时,yum 每次查询软件包信息都需要扫描本地的元数据缓存和仓库信息,这个过程相对较慢。尤其是当仓库数量较多或者软件包数量庞大时,查询操作(如检查软件包更新)会花费较多时间。
      • dnf:dnf 对元数据的缓存机制进行了优化。它采用更高效的算法来存储和查询软件包元数据,能够更快地确定软件包是否有更新、依赖关系等信息。例如,在执行dnf check - update命令检查更新时,dnf 可以更快地根据本地缓存和远程仓库信息返回结果。
    • 软件包下载和安装速度
      • yum:yum 在下载和安装软件包过程中,资源分配和调度相对简单。在同时处理多个软件包下载和安装时,可能会因为网络带宽分配不合理或者磁盘 I/O 冲突等问题导致速度下降。
      • dnf:dnf 采用了更智能的软件包下载和安装策略。它可以更好地利用系统资源,例如合理分配网络带宽给不同的软件包下载任务,优化磁盘 I/O 操作顺序,从而在一定程度上提高软件包下载和安装的速度,减少整体安装时间。
  2. 依赖关系处理

    • 依赖解析算法
      • yum:yum 的依赖关系解析算法相对基础。在处理复杂的软件包依赖关系时,尤其是当存在多个软件包相互依赖且有版本冲突的情况时,yum 可能会出现一些问题,如无法准确找到满足所有依赖条件的软件包版本组合。
      • dnf:dnf 拥有更先进的依赖关系解析算法。它能够更准确地分析软件包之间的依赖关系,并且在遇到依赖冲突时,会尝试更多的解决方案。例如,当安装一个软件包,其依赖的某个库有多个可用版本,dnf 可以更好地选择最合适的版本来确保软件正常安装和运行。
    • 依赖关系的可视化和报告
      • yum:yum 在依赖关系的展示方面比较简单,通常只是在安装或更新软件包过程中,如果遇到依赖问题,会简单地提示缺少哪些依赖包,但没有提供详细的依赖关系图或者可视化的信息。
      • dnf:dnf 可以提供更详细的依赖关系信息。例如,通过某些插件或者命令选项,能够以更清晰的方式展示软件包之间的依赖关系,这对于开发者或者系统管理员在排查软件包安装问题时非常有帮助。
  3. 仓库管理和配置

    • 仓库格式支持
      • yum:yum 主要支持传统的 yum 仓库格式,对于一些新出现的或者非标准的仓库格式支持可能有限。
      • dnf:dnf 在仓库格式支持上更加灵活,它不仅可以处理传统的 yum 仓库,还能兼容其他多种格式的软件包仓库。这使得用户在添加和使用不同来源的软件包仓库时更加方便。
    • 仓库配置的便捷性
      • yum:yum 的仓库配置相对复杂,通常需要手动编辑配置文件(如/etc/yum.repos.d/目录下的文件)来添加、删除或者修改仓库信息。而且在配置过程中,容易因为语法错误或者仓库信息不准确导致问题。
      • dnf:dnf 提供了更方便的仓库配置命令。例如,通过dnf config - manager命令可以更轻松地添加、删除仓库,并且在配置过程中会有更好的错误检查机制,降低了仓库配置的难度。
  4. 用户体验和命令行界面

    • 命令的简洁性和易用性
      • yum:yum 的命令相对比较简单直接,但在一些复杂操作(如同时安装多个软件包并指定版本、更新特定仓库的软件包等)时,命令可能会变得冗长或者不够直观。
      • dnf:dnf 在保持命令功能完整性的同时,对命令行进行了优化。命令更加简洁明了,并且提供了更好的命令自动补全功能。例如,在命令行中输入dnf in后,按下 Tab 键,dnf 会自动补全为dnf install,这使得用户在命令行操作时更加方便快捷。
    • 输出信息的可读性
      • yum:yum 在安装、更新或者查询软件包过程中,输出的信息相对比较简单。在遇到问题(如软件包冲突、安装失败等)时,输出的错误信息可能不够详细,需要用户进一步分析才能确定问题所在。
      • dnf:dnf 在输出信息方面进行了优化,提供了更详细、更易读的操作过程和结果信息。例如,在安装软件包时,它会清晰地显示正在下载的软件包、正在安装的软件包、软件包的大小以及安装进度等信息,并且在遇到问题时,能够提供更准确的错误提示,帮助用户快速定位和解决问题。

十四、rpm和dnf的应用场景:

  1. RPM(Red Hat Package Manager)的适用场景

    • 软件分发与离线安装
      • 当你需要在没有网络连接的环境下安装软件时,RPM 就非常有用。例如,你可以将软件的 RPM 包下载到本地存储介质(如 U 盘),然后在离线的服务器或计算机上使用rpm -ivh <package - name>.rpm命令进行安装。这种方式在一些安全要求较高、网络受限或者需要批量安装相同软件的场景中很常见,比如在企业内部网络的服务器机房,预先下载好所需软件的 RPM 包,然后通过运维人员手动安装到各个服务器上。
    • 软件包的定制与内部部署
      • 如果你是软件开发者或者系统集成商,制作了自己的软件包并且希望在特定的 Red Hat 系列操作系统上进行分发,RPM 是一个很好的选择。你可以将软件的二进制文件、配置文件、文档等打包成 RPM 格式,并且定义好软件包的安装脚本、依赖关系等信息。这样,其他用户可以很方便地使用 RPM 工具安装你的软件,并且安装过程会自动处理依赖关系。例如,一个公司开发了内部使用的监控工具软件,将其打包成 RPM 格式后,可以在公司内部的服务器和工作站上统一部署。
    • 已知软件包且无依赖问题时的快速安装
      • 当你确切知道要安装的软件包没有复杂的依赖关系,或者已经提前解决了依赖问题,使用 RPM 进行快速安装是很方便的。例如,一些简单的命令行工具软件,其依赖关系比较简单,可能只依赖于系统已经安装的基本库,这时可以直接使用rpm -ivh命令进行安装,而不需要像使用 dnf 那样先查询和处理可能的依赖关系。
  2. DNF(Dandified Yum)的适用场景

    • 日常软件安装与更新
      • 在有网络连接的正常环境下,对于大多数用户来说,DNF 是安装和更新软件的首选工具。例如,当你想在 CentOS 系统上安装一个常用的软件,如httpd(Apache HTTP 服务器)或者firefox(火狐浏览器),使用dnf install <package - name>命令会更加方便。DNF 会自动从配置好的软件仓库(yum 源)中查找软件包,处理依赖关系,下载并安装软件。同样,在更新软件时,dnf update命令可以轻松地更新系统中所有软件包或者指定的软件包。
    • 复杂依赖关系处理
      • 当安装的软件有复杂的依赖关系,尤其是涉及多个软件包相互依赖且可能存在版本冲突时,DNF 的优势就更加明显。例如,安装一个大型的开发工具链或者数据库管理系统,这些软件可能依赖于许多不同的库和其他软件组件,并且对版本有严格要求。DNF 能够自动解析这些依赖关系,从软件仓库中找到合适的软件包版本组合,确保软件能够正确安装和运行。
    • 软件仓库管理与系统更新维护
      • 如果你需要添加、删除或者管理软件仓库,DNF 提供了方便的命令。例如,通过dnf config - manager --add - repo=<repository - url>可以添加新的软件仓库,使用dnf repolist可以查看系统中已有的软件仓库列表。在系统更新维护方面,DNF 可以定期检查软件包的更新情况,并且在更新过程中自动处理软件包的升级、替换等操作,保持系统软件的最新状态。


网站公告

今日签到

点亮在社区的每一天
去签到