Отношения между yum, .repo и .rpm?

699
CuriousMind

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

Мне нужно установить несколько пакетов в 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.

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

0

1 ответ на вопрос

1
msuchy
  • 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.

Большое спасибо за вашу подробную информацию, теперь это довольно ясно. благодаря тонну! CuriousMind 7 лет назад 0