中国软件网

您现在的位置是:网站首页>软件百科

软件百科

14Rocky Linux 软件管理

中国软件网2023-05-08软件百科电子沙盘软件
票据通软件,电子沙盘软件,组态软件开发,14RockyLinux软件管理,票据通软件,电子沙盘软件,组态软件开发软件安装与更新是系统管理的基础工作之一。在这一章中,我们系统性地讨论RockyLinux中软件管理的相关内容

14Rocky Linux 软件管理

14Rocky Linux 软件管理,

  票据通软件,电子沙盘软件,组态软件开发软件安装与更新是系统管理的基础工作之一。在这一章中,我们系统性地讨论 Rocky Linux 中软件管理的相关内容,包括:

  和其他 Linux 发行版一样,Rocky Linux 同样基于 repos 机制提供软件。其中包括软件包列表、包之间的依赖关系列表、以及其他有用的元数据。

  两者的输出完全相同。在 Rocky Linux 8 中,yum是指向dnf命令的符号链接:

  在Rocky Linux 高级安装选项一章中,为了加快软件包的安装速度,我把官网默认的源修改成了南京大学的源。

  中的内容是节的名称,表示每节的开始,在这个示例中节名是 。包含以下选项:

  baseurl:提供软件包资源的位置。在这个示例中,它是一个 https 源。包含的变量,在访问时会被替换成对应值。其他提供软件包资源的方式有 NFS、HTTP 和 FTP。

  enabled:定义了在系统中启用或禁用该仓库。当值为 时,启用仓库,值为 时,禁用仓库。

  gpgcheck:验证软件包的机制。当值为 时被启用,所有使用 dnf/yum 安装在系统中的软件包将被使用它们的 gpg 签名与提供的密钥进行验证。

  要查看系统中的所有仓库,可以使用dnf repolist --all命令,它同时还显示了仓库的状态:

  可以通过以下两条命令启用或禁用指定的仓库,repoName 表示仓库名称:

  可以看到新添加的 repo 缺少了选项,不过我们依然能够安装 EPEL 中的screen包:

  可以看到,我们在文件中添加了gpgcheck 和 gpgkey 条目。再次安装screen包:

  我们刚刚验证了使用的签名与管理它的项目所公布的指纹相同,所有从这个 repo 下载的软件包都将被验证,以避免软件包被篡改。

  在上一节中,我们安装了软件包。在安装包的过程中,有一个交互性的操作,以便我们确认在系统中安装新的软件。

  zip包被安装了,并且还安装了依赖包unzip,也没有再让我们输入 。dnf会找到依赖的软件包,解析依赖,并安装包运行时所需的所有内容。通过这种方式,系统保持了一致的状态、以及更加可靠和可预测。

  我们可以通过dnf check-update命令查看哪些包提供了可用的更新:

  内核是系统中最重要的部分。它支持硬件访问和操作系统的所有基本功能。这就是为什么,不是升级内核,而是安装一个新版本。系统会保留前两个版本,以防系统无法启动,并且我们可以指定运行哪个版本的内核。

  有一些软件包组合在一起执行特定的任务,它们被称为 package group。可以通过dnf grouplist命令查看包组:

  dnf groupinstall命令用来包组。我们用它来安装系统工具组:

  可以使用dnf history rollback命令,回退系统中通过dnf管理的软件包到指定的点。

  这时,会提示我们输入 y,以删除事务 15 安装的 “net-tools” 包。如果回退的点之后有多个事务,这些事务都会被撤销。

  还可以使用dnf history undo撤销指定的事务。我的示例中,在事务 13 的位置删除了screen,可以使用undo子命令,撤销事务 13 删除 screen 软件包的操作:

  也可以在执行 rollback/undo 时指定 参数,避免交互式操作:

  在 Rocky Linux 8 中,有一个新特性:模块化。它使系统中的同一个软件包可以有多个版本。所有这些都是由dnf提供的,不需要安装额外的软件:

  不指定任何包的dnf module list命令,将显示模块的完整列表。

  更多模块化的相关信息,可以通过man dnf.modularity命令,进入手册页查看。

  有时我们会下载 RPM 文件到某个目录,有时会构建自己的 RPM 文件,然后分发它们,为此,我们需要创建一个 repo。

  createrepo命令用来创建仓库,我们在 目录下创建 repos 目录:

  在当前目录中创建一个名为 的目录,它是一个通信工具,我们把它的 RPM 文件下载到 目录中:

  在仓库中可以包含很多 RPM 文件,我们的示例中仅是单独的 RPM 包。

  我们看到创建了 目录,该目录中包含 文件,定义了存储库的内容、以及最新创建的索引文件:

  接着把仓库添加到系统中。仓库可以不使用 gpg 签名,将 gpgcheck 的值设置为 0。但为了更好的安全性,我们使用签名。可以把 slack 的相关签名下载到 目录中:

  现在,我们尝试安装slack。要运行slack,需要安装 GUI 包组,但出于演示目的,我们仅安装slack。执行dnf install -y slack命令安装包,安装的过程中,还会导入 gpg 密钥验证包:

  如果有新版本的slack,我们可以把它下载到同一目录中,并再次运行createrepo命令重新生成仓库索引。这样,所有包含该仓库的系统,在执行dnf update时,都会更新slack。这是一个让所有系统保持标准化和相同版本的好方法。

  有时,我们希望在系统中保存仓库的本地副本。为此,我们可以使用reposync工具。

  作为演示,我们禁用除 “baseos” 外的所有仓库,但别忘记在本章结束后再把它们启用:

  禁用仓库还有另外一个方法,就是修改 repo 文件的后缀,改成非 结尾。

  --newest-only:仅最新版。仓库保留了自第一次发布以来的软件包的所有版本,加上此参数,仅下载最新版的软件包。

  --download-metadata:为了确保我们下载的是一个功能齐全的 repo,并且无需再执行createrepo命令,我们可以添加该选项,它将检索源仓库中的所有元数据。

  --destdir /var/tmp/repos:为下载的文件指定目标目录。它将为每个配置的 repo 创建一个目录,所以指定的目录是所有 repo 的父目录。

  有了这个复制来的仓库,我们就可以在网络隔离的环境中使用dnf包管理工具了。

  在学习了 repos 的基础知识以及如何使用它们来管理软件之后,让我们深入了解它背后的技术,即红帽软件包管理器 (Red Hat Package Manager),简称 RPM。

  Linux 发行版往往有自己的包管理器,从 Debian 的 .deb 到 Arch Linux 的 Pacman,以及其他不同的包管理器。软件包管理器的目的是让系统安装、更新软件,维护依赖关系更方便,并管理系统上所安装软件的内部数据库。RPM 被 Fedora、CentOS、Oracle Linux 等发行版本使用,当然还有 Rocky Linux。

  为了管理 RPM,系统提供了rpm命令。然而,自从引入yum/dnf后,已经很少在系统中使用rpm了。

很赞哦!