我不是系统管理员背景,但是由于某些原因,我需要执行如下所述的一些任务:
我需要在 4-5 个节点的 RHEL 中安装一些软件包,使用 RHEL 7.x OS 中的“ yum ”。为此,我遇到了各种术语,例如:yum
、、 。.repo
.rpm
我有点明白使用yum
我们可以安装一个软件,但我在如何yum
从互联网上获取该软件方面遇到了困难。
有人能帮助我理解以下几点吗:
1)yum
该程序是否执行软件安装?
2) 什么是.rpm
?.rpm
有实际安装的软件吗?.rpm
有点类似于.tar
?
3) 如何yum
从互联网上获取/下载软件?它查阅文件吗.repo
?
4)当我们写入时yum - y install some_program
,是否先从互联网下载二进制文件然后安装,或者我们是否需要做一些事情rsync
。
我很困惑,我尝试在网上寻找答案,但我的疑惑仍然存在。有人能用简单的语言帮助我吗?
答案1
RPM 是软件包。一些软件的软件包。它包含 CPIO 存档中的文件(类似于 tar,只是格式不同)和一些信息(例如它需要哪些其他软件包)以及在安装/升级/删除软件包时需要运行的脚本(这些脚本由 /usr/bin/rpm 自动运行)。
大多数 Linux 软件都是动态链接的。例如,对于 Firefox 软件包,您需要 libnss 软件包(以及一堆其他软件包)。这样做的好处是,如果存在错误/安全问题,该库的维护者只需更新该库,而不需要重新编译所有使用该库的程序(可能有数百个)。
典型的发行版(RHEL)由数千个 RPM 包组成。它们被分组在一个称为存储库的目录中。Red Hat 提供了一些基础存储库。然后还有一些其他存储库,其中包含一些产品(例如 OpenStack 或 Satellite 或其他产品所需的所有包)。最知名的存储库之一是 EPELhttps://fedoraproject.org/wiki/EPEL包含 RHEL 软件包。它提供 RHEL 中缺少的软件,并由社区支持(即无保修)。
虽然您可以手动下载 RPM 包并安装它,但
/usr/bin/rpm -Uvh somepackage.rpm
您很可能会收到一些错误信息somelibrary
。如果您下载该包并尝试安装它,您将收到一些错误信息someotherlibrary
。这称为依赖链。有时这种依赖关系甚至是循环的,您无法逐一安装。当您安装某些软件时,它通常需要数十甚至数百个依赖项。手动安装它们会花费很多时间。YUM 是一个可以自动解决依赖关系并从存储库中选择最佳软件包来满足这些依赖关系的程序。因此,即使升级和安装某些软件也是轻而易举的事。例如
yum install firefox
。Yum 可以为您下载软件包。它只需要知道这些存储库的 URL(请记住,您可以为系统配置一个或多个存储库)。URL 存储在
.repo
文件中。它们位于 中/etc/yum.repos.d/
。它是纯文本文件(INI 格式),包含 URL 和一些其他信息(例如,如果软件包是 GPG 签名的)。如果您正确设置了 repo 文件,则 YUM 可以轻松地从这些存储库安装软件。当您执行时,/usr/bin/yum install firefox
它将从所有配置的存储库下载信息,然后它将通知您将安装 Firefox 和其他 X 个依赖项。当您确认后,它将下载这些软件包然后安装它们。无需运行 rsync。