- 15+ примеров для команды yum update
- Как работает команда Yum Update?
- Обновление без проверки gpg
- Обновление из локального репозитория
- Просмотр обновлений
- Обновление конкретного пакета
- Обновить все, кроме одного пакета
- Исключение нескольких пакетов
- Проверить, когда было запущено последнее обновление
- Откатить (отменить) обновления
- Чистка неудачного обновления Yum
- Игнорирование ошибок
- Вывести список пакетов, которые нужно обновить.
- Разница между командами yum check update и yum list update
- Уведомление о наличии доступных обновлений
- Какой порт использует yum update
- Yum update против upgrade
15+ примеров для команды yum update
YUM (Yellowdog Updater, Modified) это менеджер пакетов, используемый в Red Hat, CentOS и других дистрибутивах Linux, использующих RPM Package Manager. Yum используется для установки, обновления, удаления или других манипуляций с пакетами, установленными на этих Linux-системах.
В этом руководстве мы расскажем вам о команде 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 игнорировать проверку GPG подписей пакетов. И будет полезен в тех случаях, когда у вас есть неподписанный пакет или просто нет ключа GPG.
Обновление из локального репозитория
Можно настроить локальные репозитории для команды yum при выполнении обновлений. Это зачастую делается, если вам нужно использовать yum для обновления пакетов, которые не включены в репозитории по умолчанию, или если вам нужно обновить автономную систему.
Прежде всего, поместите все ваши обновленные RPM-файлы в новую папку. В этом примере мы будем использовать /root/rpms . Затем перейдите в следующую директорию, где вы можете увидеть все файлы репозитория для yum:
Чтобы настроить собственный репозиторий, создадим новый файл в этом каталоге.
Непосредственно в вашем repo-файле задайте параметры в указанном формате, меняя строки по мере необходимости:
[MyRepo] name=My Local Repo baseurl=file:///root/rpms enabled=1 gpgcheck=0
Большая разница между локальным и удаленным repo заключается в строке «baseurl«, где протокол file:// указывает на локальный файл, в то время как удаленный на протоколы http:// или ftp://.
Как только файл будет сохранен, примените правильные права доступа как показано ниже:
Теперь репозиторий может быть готов к использованию. Перед тем, как пытаться выполнить команду yum update убедитесь, что вы очистили кэш yum использую команду:
Просмотр обновлений
Yum может отображать доступные обновления безопасности без их установки, с помощью этой команды:
$ yum updateinfo list security
Если в результатах данные не возвращаются, как на рисунке выше, это означает отсутствие обновлений безопасности для всех установленных в вашей системе программных продуктов.
Обновление конкретного пакета
Если вам нужно обновить определенный пакет без запуска обновления для каждого установленного приложения, просто укажите имя пакета в вашей команде yum update.
Можно указать несколько пакетов, разделенных пробелом. Вам нужно, чтобы название пакета было указано идеально, чтобы yum смог найти его в своих репозиториях; если вы не уверены в наименовании пакета, сначала проверьте, какие пакеты в настоящее время доступны для обновлений:
Обновить все, кроме одного пакета
Если вам нужно выполнить команду yum update, но вы хотите исключить какой-либо пакет из списка обновляемых, вы можете указать опцию -exclude.
Распространённая ситуация, когда администраторы могут счесть это необходимым, связана с обновлениями ядра, так как это основные обновления, которые могут привести к непредсказуемым ошибкам на рабочем сервере. Однако, они всё же могут выполнить команду для обновления менее критичных приложений.
Чтобы исключить пакет (в данном примере связанные с ядром):
Звездочка действует как подстановочный знак, в случае, если существует несколько взаимосвязанных пакетов или вы не знаете полного имени пакета.
Исключение нескольких пакетов
Вы можете исключить несколько пакетов с большим количеством опций -exclude.
$ yum update --exclude=kernel* --exclude=httpd
Используйте этот символ, как в примере выше, или же символ -x, столько раз, сколько потребуется.
Проверить, когда было запущено последнее обновление
Для того чтобы увидеть список транзакций с датой и временем их выполнения, воспользуйтесь командой yum history.
На приведенном выше скриншоте, вы можете видеть, что последний раз обновление программного обеспечения yum было 4 января.
Откатить (отменить) обновления
Отличительной особенностью «yum» является то, что она позволяет отменить последнее обновление, тем самым восстанавливая обновленные пакеты до их предыдущих версий.
Каждому действию yum (установка, обновление, удаление и т.д.) присваивается идентификатор транзакции, и этот идентификатор следует указывать при отмене обновления yum.Чтобы посмотреть список идентификаторов операций для недавних действий Yum, воспользуйтесь этой командой:
На скриншоте выше вы можете видеть, что последней операцией, выполненной с помощью yum, была установка пакета httpd. Отмена установки или обновления работает таким же образом, поэтому в этом примере мы отменим последнюю установку httpd. Как показано на скриншоте, эта операция имеет ID 7.
Чтобы отменить это изменение и откатить программу на предыдущую версию, выполните эту команду:
Как обычно, yum подведёт итоги внесённых изменений и спросит, хотите ли вы продолжить с помощью подсказки Y/N.Если ввести Y, то указанная транзакция будет отменена.
Чистка неудачного обновления Yum
Если не удалось успешно обновить один или несколько пакетов при выполнении команды «yum update», в систему могут быть установлены дубликаты пакетов (2 версии одной и той же программы). Иногда, следуя вышеописанным инструкциям по откату, можно устранить проблему.
Если это не сработает, вы можете удалить дубликаты пакетов вашей системы с помощью данной команды:
Yum хранит в кэше информацию для пакетов, метаданных и заголовков. Если вы столкнулись с ошибкой,очистка кэш-памяти yum является хорошим первым шагом в устранении неполадок. Для этого используйте следующую команду:
Игнорирование ошибок
При обновлении или установке пакета для его корректной работы может потребоваться дополнительное программное обеспечение. Yum знает об этих зависимостях и попытается разрешить их во время обновления, устанавливая или обновляя необходимые дополнительные пакеты.
Если у вас возникнут проблемы с установкой необходимых компонентов, это приведёт к ошибке и не позволит продолжить работу. Это может стать проблемой, если у вас есть другие пакеты, которые необходимо обновить.
Чтобы дать инструкции yum продолжить обновление других пакетов и пропустить пакеты с поврежденными зависимостями, вам следует указать параметр -skip-broken в команде yum update .
Вывести список пакетов, которые нужно обновить.
Выполнение команды Yum update в обычном режиме без дополнительных опций выведет список всех доступных обновлений.
Если вы хотите посмотреть дополнительную информацию о доступных обновлениях пакета, введите эту команду:
Чтобы посмотреть информацию касательно обновлений безопасности, которые доступны для системы, введите эту команду:
Разница между командами yum check update и yum list update
Хотя эти две команды звучат одинаково, но есть разница между проверкой обновлений и списком обновлений в yum.
Команда list updates, показанная выше, перечислит все пакеты в репозиториях, для которых доступны обновления. Имейте в виду, что некоторые пакеты в репозиториях могут быть вообще не установлены в вашей системе.
Указанная выше команда check-update позволяет проверять наличие обновлений без вмешательства пользователя. Это команда подойдёт в тех случаях, если вы пишите скрипт для проверки обновлений.
Если есть пакеты с доступными обновлениями, команда check-update вернёт значение 100, а если нет доступных обновлений, то значение 0. При обнаружении ошибки возвращается значение 1. Используйте эти значение чтобы надлежащим способом написать свой скрипт.
Уведомление о наличии доступных обновлений
Есть несколько пакетов, которые могут помочь управлять обновлениями yum в вашей системе.Некоторые из них могут даже уведомлять администраторов, если есть обновления, которые можно установить.Один из таких сервисов называется yum-cron.
Для начала установите yum-cron используя yum:
Установите службу yum-cron для запуска при загрузке:
$ systemctl enable yum-cron.service $ systemctl start yum-cron.service
Настройте параметры yum-cron внутри конфигурационного файла с помощью vi или предпочитаемого вами текстового редактора:
В этом файле вы можете указать, должны ли обновления применяться автоматически или нет. Если вы хотите только получать уведомления, введите данные электронной почты в файле конфигурации. В любое время, когда появятся обновления для вашей системы, 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 update обновит пакеты в системе, но пропустит удаление устаревших пакетов. Yum upgrade тоже обновит все пакеты в вашей системе, но также удалит устаревшие пакеты.
Это по своей сути более безопасный вариант команды yum update, поскольку вам не нужно беспокоиться о случайном удалении необходимого пакета при обновлении программного обеспечения.
Будьте внимательны при вводе команды yum upgrade, так как она может не сохранить некоторые пакеты, которые вы всё ещё используете. Я надеюсь, что вы найдете это руководство полезным при работе с утилитой yum.