Я не из системного администратора, однако по некоторым причинам мне нужно выполнить некоторые задачи, как описано ниже:

Мне нужно установить несколько пакетов в RHEL на 4-5 узлах, используя "yum" в ОС RHEL 7.x. Для этого я натолкнулся на различные термины, такие как: yum , .repo , .rpm .

Я несколько понял, что с помощью yum мы можем установить программное обеспечение, но мне трудно понять, как yum получает программное обеспечение из Интернета.

Может ли кто-нибудь помочь мне понять следующие моменты:

1) Является ли yum программой, выполняющей установку программного обеспечения?

2) Что такое .rpm? .rpm имеет реальное программное обеспечение, которое устанавливается? .rpm чем-то похож на .tar?

3) Как yum получает / загружает программное обеспечение из Интернета? Проверяет ли он файл .repo ?

4) Когда мы пишем yum - y install some_program , загружает ли он сначала двоичные файлы из интернета, а затем устанавливает или нам нужно выполнить rsync .

Я запутался, я пытался найти ответы в Интернете, но мои сомнения все еще остаются. Кто-нибудь может мне помочь простыми словами?

1 ответ1

1
  • RPM это пакет. Пакет программного обеспечения. Он содержит файлы в архиве CPIO (аналогично tar, только в другом формате) и некоторую информацию (например, какие другие пакеты ему нужны) и сценарии, которые необходимо запускать при установке / обновлении / удалении пакета (которые автоматически запускаются / usr / бен / мин).

  • Большая часть программного обеспечения Linux динамически связана. Т.е. для пакета firefox вам нужен пакет libnss (и множество других). Преимущество этого заключается в том, что в случае ошибки / проблемы с безопасностью сопровождающий этой библиотеки обновляет только эту библиотеку и не нуждается в перекомпиляции всех программ, которые ее используют (могут быть из них сотни).

  • Типичный дистрибутив (RHEL) состоит из тысяч пакетов RPM. Они сгруппированы в одном каталоге под названием хранилище. Red Hat предоставляет некоторый базовый репозиторий. Затем есть некоторые другие репозитории с некоторыми продуктами (например, все пакеты, необходимые для OpenStack или Satellite или чего-то еще). Одним из наиболее известных репозиториев является EPEL https://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). Если вы правильно настроили файлы репо, YUM может легко установить программное обеспечение из этих репозиториев. Когда вы выполните /usr/bin/yum install firefox он загрузит информацию из всех сконфигурированных репозиториев, затем сообщит вам, что будут установлены firefox и X другие зависимости. Когда вы подтвердите, он загрузит эти пакеты, а затем установит их. Нет необходимости запускать rsync.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .