ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопастность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

10 минут чтени€

YUM (Yellowdog Updater, Modified) это менеджер пакетов, используемый в Red Hat, CentOS и других дистрибутивах Linux, использующих RPM Package Manager. Yum используетс€ дл€ установки, обновлени€, удалени€ или других манипул€ций с пакетами, установленными на этих Linux-системах.

¬ этом руководстве мы расскажем вам о команде yum update - что она собой представл€ет, как ее использовать, и о различных командах, которые могут вам пригодитьс€, дл€ обновлени€ установленных пакетов в вашей системе.


 ак работает команда Yum Update?

Yum update - это команда, используема€ дл€ обновлени€ приложений, установленных в системе. ≈сли команда выполн€етс€ без указани€ имЄн пакетов, она обновит все установленные в системе пакеты.

$ yum update

ѕри выполнении этой команды, yum начнЄт с проверки своих репозиториев на наличие обновленных версий программного обеспечени€, установленных в вашей системе на данный момент. Ќа приведенном ниже –исунке ј показан тип вывода, который вы обычно видите при первом запуске команды yum update.

–исунок ј

 ак вы можете увидеть,на выводе yum сначала перечисл€ет запрашиваемые репозитории, которые €вл€ютс€ стандартными репозитори€ми по умолчанию дл€ CentOS: AppStream, Base и Extras.Ќиже, приводитс€ список различных пакетов, дл€ которых были найдены обновлени€.

¬ конце этого вывода yum отобразит "—водку транзакций", котора€ показывает общее количество пакетов, которые должны быть установлены и обновлены.

–исунок Ѕ

¬ данном примере на –исунке Ѕ, идЄт обновление 166 пакетов и установка 6 новых пакетов.

Ќа случай, если вам интересно почему устанавливаютс€ новые пакеты, когда мы должны были только обновить приложени€, некоторые новые пакеты программного обеспечени€ могли стать частью этого дистрибутива Linux, или некоторые обновленные приложени€ могут полагатьс€ на дополнительные пакеты, которые еще не установлены.

ѕосле просмотра списка программного обеспечени€, которое yum планирует обновить, вы можете подтвердить эти изменени€, набрав "y" и нажав клавишу Enter.

«атем Yum начнЄт выполн€ть обновлени€, которые могут зан€ть некоторое врем€ в зависимости от скорости вашего соединени€ и самой системы.

ѕосле его завершени€ вы получите итоговую сводку, как показано на рисунке ¬, в которой будут перечислены все пакеты, которые были успешно обновлены, а также все ошибки, которые могли возникнуть.


ќбновление без проверки gpg

¬ Linux дл€ проверки подлинности RPM пакетов используютс€ GPG ключи. ≈сли при запуске обычной команды обновлени€ yum вы столкнЄтесь с ошибкой типа "Package NameOfPackage.rpm is not signed .. install failed!", вы можете с лЄгкостью пропустить проверку подлинности RPM пакетов с помощью опции -nogpgcheck.

$ yum update --nogpgcheck

ƒанный параметр указывает команде yum игнорировать проверку GPG подписей пакетов. » будет полезен в тех случа€х, когда у вас есть неподписанный пакет или просто нет ключа GPG.


ќбновление из локального репозитори€

ћожно настроить локальные репозитории дл€ команды yum при выполнении обновлений. Ёто зачастую делаетс€, если вам нужно использовать yum дл€ обновлени€ пакетов, которые не включены в репозитории по умолчанию, или если вам нужно обновить автономную систему.

ѕрежде всего, поместите все ваши обновленные RPM-файлы в новую папку. ¬ этом примере мы будем использовать /root/rpms. «атем перейдите в следующую директорию, где вы можете увидеть все файлы репозитори€ дл€ yum:

$ cd /etc/yum.repos.d
cd /etc/yum.repos.d

„тобы настроить собственный репозиторий, создадим новый файл в этом каталоге.

$ vi MyRepo.repo

Ќепосредственно в вашем repo-файле задайте параметры в указанном формате, мен€€ строки по мере необходимости:

[MyRepo]
name=My Local Repo
baseurl=file:///root/rpms
enabled=1
gpgcheck=0

Ѕольша€ разница между локальным и удаленным repo заключаетс€ в строке "baseurl", где протокол file:// указывает на локальный файл, в то врем€ как удаленный на протоколы http:// или ftp://.

 ак только файл будет сохранен, примените правильные права доступа как показано ниже:

$ chmod 644 MyRepo.repo

“еперь репозиторий может быть готов к использованию. ѕеред тем, как пытатьс€ выполнить команду yum update убедитесь, что вы очистили кэш yum использую команду:

$ yum clean all

ѕросмотр обновлений

Yum может отображать доступные обновлени€ безопасности без их установки, с помощью этой команды:

$ yum updateinfo list security
yum updateinfo list security

≈сли в результатах данные не возвращаютс€, как на рисунке выше, это означает отсутствие обновлений безопасности дл€ всех установленных в вашей системе программных продуктов.


ќбновление конкретного пакета

≈сли вам нужно обновить определенный пакет без запуска обновлени€ дл€ каждого установленного приложени€, просто укажите им€ пакета в вашей команде yum update.

$ yum update name-of-package

ћожно указать несколько пакетов, разделенных пробелом. ¬ам нужно, чтобы название пакета было указано идеально, чтобы yum смог найти его в своих репозитори€х; если вы не уверены в наименовании пакета, сначала проверьте, какие пакеты в насто€щее врем€ доступны дл€ обновлений:

$ yum check-update

ќбновить все, кроме одного пакета

≈сли вам нужно выполнить команду yum update, но вы хотите исключить какой-либо пакет из списка обновл€емых, вы можете указать опцию -exclude.

–аспространЄнна€ ситуаци€, когда администраторы могут счесть это необходимым, св€зана с обновлени€ми €дра, так как это основные обновлени€, которые могут привести к непредсказуемым ошибкам на рабочем сервере. ќднако, они всЄ же могут выполнить команду дл€ обновлени€ менее критичных приложений.

„тобы исключить пакет (в данном примере св€занные с €дром):

$ yum update --exclude=kernel*

«вездочка действует как подстановочный знак, в случае, если существует несколько взаимосв€занных пакетов или вы не знаете полного имени пакета.

¬ качестве альтернативы:

$ yum update -x 'kernel*'

»сключение нескольких пакетов

¬ы можете исключить несколько пакетов с большим количеством опций -exclude.

$ yum update --exclude=kernel* --exclude=httpd

»спользуйте этот символ, как в примере выше, или же символ -x, столько раз, сколько потребуетс€.


ѕроверить, когда было запущено последнее обновление

ƒл€ того чтобы увидеть список транзакций с датой и временем их выполнени€, воспользуйтесь командой yum history.

$ yum history
yum history

Ќа приведенном выше скриншоте, вы можете видеть, что последний раз обновление программного обеспечени€ yum было 4 €нвар€.


ќткатить (отменить) обновлени€

ќтличительной особенностью "yum" €вл€етс€ то, что она позвол€ет отменить последнее обновление, тем самым восстанавлива€ обновленные пакеты до их предыдущих версий.

 аждому действию yum (установка, обновление, удаление и т.д.) присваиваетс€ идентификатор транзакции, и этот идентификатор следует указывать при отмене обновлени€ yum.„тобы посмотреть список идентификаторов операций дл€ недавних действий Yum, воспользуйтесь этой командой:

$ yum history
yum history

Ќа скриншоте выше вы можете видеть, что последней операцией, выполненной с помощью yum, была установка пакета httpd. ќтмена установки или обновлени€ работает таким же образом, поэтому в этом примере мы отменим последнюю установку httpd.  ак показано на скриншоте, эта операци€ имеет ID 7.

„тобы отменить это изменение и откатить программу на предыдущую версию, выполните эту команду:

$ yum history undo 7
yum history undo 7

 ак обычно, yum подведЄт итоги внесЄнных изменений и спросит, хотите ли вы продолжить с помощью подсказки Y/N.≈сли ввести Y, то указанна€ транзакци€ будет отменена.

yum history undo 7

„истка неудачного обновлени€ Yum

≈сли не удалось успешно обновить один или несколько пакетов при выполнении команды "yum update", в систему могут быть установлены дубликаты пакетов (2 версии одной и той же программы). »ногда, следу€ вышеописанным инструкци€м по откату, можно устранить проблему.

≈сли это не сработает, вы можете удалить дубликаты пакетов вашей системы с помощью данной команды:

$ package-cleanup --dupes

Yum хранит в кэше информацию дл€ пакетов, метаданных и заголовков. ≈сли вы столкнулись с ошибкой,очистка кэш-пам€ти yum €вл€етс€ хорошим первым шагом в устранении неполадок. ƒл€ этого используйте следующую команду:

$ yum clean all
yum clean all

»гнорирование ошибок

ѕри обновлении или установке пакета дл€ его корректной работы может потребоватьс€ дополнительное программное обеспечение. Yum знает об этих зависимост€х и попытаетс€ разрешить их во врем€ обновлени€, устанавлива€ или обновл€€ необходимые дополнительные пакеты.

≈сли у вас возникнут проблемы с установкой необходимых компонентов, это приведЄт к ошибке и не позволит продолжить работу. Ёто может стать проблемой, если у вас есть другие пакеты, которые необходимо обновить.

„тобы дать инструкции yum продолжить обновление других пакетов и пропустить пакеты с поврежденными зависимост€ми, вам следует указать параметр -skip-broken в команде yum update.

$ yum update --skip-broken

¬ывести список пакетов, которые нужно обновить.

¬ыполнение команды Yum update в обычном режиме без дополнительных опций выведет список всех доступных обновлений.

$ yum update

≈сли вы хотите посмотреть дополнительную информацию о доступных обновлени€х пакета, введите эту команду:

$ yum updateinfo

„тобы посмотреть информацию касательно обновлений безопасности, которые доступны дл€ системы, введите эту команду:

$ yum updateinfo security

–азница между командами yum check update и yum list update

’от€ эти две команды звучат одинаково, но есть разница между проверкой обновлений и списком обновлений в yum.

$ yum list updates

 оманда list updates, показанна€ выше, перечислит все пакеты в репозитори€х, дл€ которых доступны обновлени€. »мейте в виду, что некоторые пакеты в репозитори€х могут быть вообще не установлены в вашей системе.

$ yum check-update

”казанна€ выше команда check-update позвол€ет провер€ть наличие обновлений без вмешательства пользовател€. Ёто команда подойдЄт в тех случа€х, если вы пишите скрипт дл€ проверки обновлений.

≈сли есть пакеты с доступными обновлени€ми, команда check-update вернЄт значение 100, а если нет доступных обновлений, то значение 0. ѕри обнаружении ошибки возвращаетс€ значение 1. »спользуйте эти значение чтобы надлежащим способом написать свой скрипт.


”ведомление о наличии доступных обновлений

≈сть несколько пакетов, которые могут помочь управл€ть обновлени€ми yum в вашей системе.Ќекоторые из них могут даже уведомл€ть администраторов, если есть обновлени€, которые можно установить.ќдин из таких сервисов называетс€ yum-cron.

ƒл€ начала установите yum-cron использу€ yum:

$ yum install yum-cron

”становите службу yum-cron дл€ запуска при загрузке:

$ systemctl enable yum-cron.service
$ systemctl start yum-cron.service

Ќастройте параметры yum-cron внутри конфигурационного файла с помощью vi или предпочитаемого вами текстового редактора:

$ vi /etc/yum/yum-cron.conf

¬ этом файле вы можете указать, должны ли обновлени€ примен€тьс€ автоматически или нет. ≈сли вы хотите только получать уведомлени€, введите данные электронной почты в файле конфигурации. ¬ любое врем€, когда по€в€тс€ обновлени€ дл€ вашей системы, yum-cron отправит вам электронное письмо.

apply_updates = no #don’t apply updates automatically
email_from = root@localhost
email_to = admin@example.com
email_host = localhost

 акой порт использует yum update

ѕри проверке обновлений yum использует порт 80. ≈сли вы загл€ните внутрь файлов репозитори€ в вашей системе, то вы увидите, что все ссылки внутри начинаютс€ с http. “аким образом, дл€ нормального функционировани€ yum на брандмауэре нужно прописать правило и открыть порт 80.


Yum update против upgrade

ƒо сих пор в этом руководстве мы говорили только о команде yum update, но есть и друга€ очень похожа€ команда: yum upgrade.

$ yum upgrade

—уществует небольша€ разница между этими двум€ командами. Yum update обновит пакеты в системе, но пропустит удаление устаревших пакетов. Yum upgrade тоже обновит все пакеты в вашей системе, но также удалит устаревшие пакеты.

Ёто по своей сути более безопасный вариант команды yum update, поскольку вам не нужно беспокоитьс€ о случайном удалении необходимого пакета при обновлении программного обеспечени€.

Ѕудьте внимательны при вводе команды yum upgrade, так как она может не сохранить некоторые пакеты, которые вы всЄ ещЄ используете. я надеюсь, что вы найдете это руководство полезным при работе с утилитой yum.