Я не имею опыта работы системным администратором, однако по некоторым причинам мне необходимо выполнить некоторые задачи, описанные ниже:
Мне нужно установить некоторые пакеты в 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
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). Если вы правильно настроили файлы репозитория, то YUM может легко установить программное обеспечение из этих репозиториев. При запуске/usr/bin/yum install firefox
он загрузит информацию из всех настроенных репозиториев, затем он сообщит вам, что будут установлены Firefox и другие зависимости X. После подтверждения он загрузит эти пакеты, а затем установит их. Нет необходимости запускать rsync.