Введение
В этой лабораторной работе вы освоите ключевые навыки управления программным обеспечением в Linux-системах семейства RHEL с использованием пакетного менеджера YUM. Вы начнете с детального изучения установленных пакетов и их зависимостей с помощью команд yum list и yum deplist. Также вы познакомитесь с настроенными в системе репозиториями через команду yum repolist, чтобы понимать, откуда загружается программное обеспечение и какие пакеты доступны для установки.
Опираясь на эти базовые знания, вы перейдете к вопросам обслуживания и обновления системы. Вы научитесь использовать команду yum check-update для выявления пакетов, для которых вышли новые версии. Наконец, вы попрактикуетесь в применении этих обновлений, разобрав разницу между обновлением одного конкретного пакета и комплексным обновлением всей системы для поддержания безопасности и актуальности вашей рабочей среды.
Проверка установленного пакета с помощью 'yum list' и 'yum deplist'
На этом этапе вы научитесь инспектировать установленные пакеты с помощью yum — стандартного менеджера пакетов для CentOS и других дистрибутивов на базе RHEL. Мы начнем с изучения пакета bash, который обеспечивает работу командной оболочки, в которой вы сейчас находитесь. Эти команды помогают понять, что именно установлено в системе и от каких компонентов зависит работа конкретной программы.
Для начала воспользуемся командой yum list, чтобы проверить статус конкретного пакета. Эта команда позволяет узнать, установлен ли пакет и какая именно версия используется.
Чтобы просмотреть сведения о пакете bash, выполните в терминале следующую команду:
sudo yum list bash
Вы увидите вывод, похожий на приведенный ниже, подтверждающий установку bash. Символ @ в колонке репозитория (например, @anaconda или @System) указывает на то, что пакет уже установлен в системе.
Installed Packages
bash.x86_64 <version> @anaconda
Далее разберем концепцию зависимостей. Большинство программных пакетов не являются автономными; для корректной работы им требуются другие пакеты, такие как библиотеки или вспомогательные утилиты. Эти необходимые компоненты называются зависимостями. Команда yum deplist позволяет просмотреть полный список зависимостей для выбранного пакета.
Чтобы увидеть все пакеты, от которых зависит bash, выполните:
sudo yum deplist bash
В выводе будет перечислена каждая зависимость и пакет, который её предоставляет. Это критически важно для понимания того, как yum разрешает конфликты и управляет установкой ПО.
package: bash.x86_64 <version>
dependency: /bin/sh
provider: bash.x86_64 <version>
dependency: chkconfig
provider: chkconfig.x86_64 <version>
dependency: coreutils
provider: coreutils.x86_64 <version>
dependency: libc.so.6(GLIBC_2.15)(64bit)
provider: glibc.x86_64 <version>
... (вывод сокращен) ...
Используя yum list и yum deplist, вы сможете четко представлять состав установленного в системе ПО и взаимосвязи между пакетами.
Изучение репозиториев и доступных пакетов с помощью 'yum repolist'
На этом этапе вы научитесь работать с источниками программного обеспечения, называемыми репозиториями, которые yum использует для поиска и установки пакетов. Также вы узнаете, как искать новые пакеты, доступные для установки.
Репозиторий пакетов — это централизованное хранилище программного обеспечения. Когда вы даете команду yum установить пакет, менеджер обращается к настроенным репозиториям, скачивает нужные файлы и устанавливает их.
Чтобы просмотреть список репозиториев, которые в данный момент включены в вашей системе, используйте команду yum repolist. Это полезно для проверки активных источников ПО.
Выполните следующую команду:
sudo yum repolist
В выводе отобразятся идентификаторы репозиториев (ID), их названия и количество содержащихся в них пакетов. Это будет выглядеть примерно так:
repo id repo name
rhui-rhel-9-for-x86_64-appstream-rhui-rpms Red Hat Enterprise Linux 9 for x86_64 - AppStream from RHUI (RPMs)
rhui-rhel-9-for-x86_64-baseos-rhui-rpms Red Hat Enterprise Linux 9 for x86_64 - BaseOS from RHUI (RPMs)
Теперь, когда вы знаете, где yum ищет программы, давайте найдем пакеты, доступные для установки. Команда yum list available показывает все пакеты из активных репозиториев, которые еще не установлены в вашей системе.
Запуск yum list available без параметров выдаст слишком длинный список. На практике удобнее искать что-то конкретное. Давайте найдем пакеты, связанные с ядром Linux (kernel). Для поиска по маске можно использовать символ подстановки (*).
Выполните команду для вывода всех доступных пакетов, название которых начинается на kernel:
sudo yum list available 'kernel*'
Одинарные кавычки вокруг kernel* важны: они предотвращают попытку командной оболочки (shell) интерпретировать символ * до того, как он попадет в yum. Вы увидите список доступных пакетов ядра, их версии и репозиторий, в котором они находятся.
Available Packages
kernel-devel.x86_64 <version> updates
kernel-doc.noarch <version> updates
kernel-headers.x86_64 <version> updates
... (вывод сокращен) ...
Эти команды являются базовыми для управления ПО: они позволяют видеть источники программ и находить новые инструменты для работы.
Проверка наличия обновлений с помощью 'yum check-update'
На этом этапе вы научитесь проверять наличие обновлений для пакетов, уже установленных в вашей системе. Регулярное обновление — это критически важная задача для обеспечения безопасности и стабильности, так как обновления часто содержат исправления уязвимостей, устранение ошибок и новые функции.
Команда yum check-update — это безопасный способ узнать, для каких из ваших пакетов в репозиториях появились более свежие версии. Важно понимать, что эта команда только выводит список доступных обновлений, но не скачивает и не устанавливает их. Это позволяет вам проанализировать изменения перед их применением.
Чтобы проверить наличие всех доступных обновлений, выполните:
sudo yum check-update
yum подключится ко всем активным репозиториям, обновит локальный кэш информации о пакетах и сравнит версии установленных программ с актуальными версиями в сети.
Если обновления доступны, вы увидите их список. Каждая строка содержит имя пакета, новую версию и репозиторий, из которого будет загружено обновление.
bind-libs.x86_64 <version> updates
bind-license.noarch <version> updates
curl.x86_64 <version> updates
glibc.x86_64 <version> updates
glibc-common.x86_64 <version> updates
... (вывод сокращен) ...
Если ваша система уже находится в актуальном состоянии, команда завершится без вывода списка пакетов. Эта процедура является неотъемлемой частью регламентного обслуживания системы, давая четкое представление о фронте работ перед запуском процесса обновления на следующих этапах.
Обновление отдельного пакета с помощью 'yum update '
На этом этапе вы примените обновление к конкретному пакету. Ранее вы использовали yum check-update, чтобы увидеть общий список доступных обновлений. Хотя чаще всего систему обновляют целиком, бывают ситуации, когда нужно обновить только одну программу. Это дает более тонкий контроль над изменениями в системе.
Выберем пакет для обновления. В качестве примера возьмем curl — популярный инструмент для передачи данных. Если curl отсутствует в вашем списке доступных обновлений, выберите любой другой пакет из списка.
Прежде чем обновлять пакет, нам нужно намеренно понизить версию curl до той, для которой доступно обновление.
sudo yum downgrade -y curl
Чтобы обновить только пакет curl, выполните:
sudo yum update curl
yum проанализирует зависимости для curl, определит необходимые действия и представит сводку транзакции. В ней будет указано, какие именно пакеты будут обновлены и какой объем данных потребуется скачать.
Resolving Dependencies
--> Running transaction check
---> Package curl.x86_64 0:<old_version> will be updated
---> Package curl.x86_64 0:<new_version> will be an update
--> Processing Dependency: libcurl = <new_version> for package: curl-<new_version>.x86_64
--> Running transaction check
---> Package libcurl.x86_64 0:<old_version> will be updated
---> Package libcurl.x86_64 0:<new_version> will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
curl x86_64 <new_version> updates <size>
Updating for dependencies:
libcurl x86_64 <new_version> updates <size>
Transaction Summary
================================================================================
Upgrade 1 Package (+1 Dependent package)
Total download size: <total_size>
Is this ok [y/d/N]:
Изучите изменения. Если вы готовы продолжить, введите y и нажмите Enter. После этого yum скачает и установит обновления.
По завершении процесса появится сообщение "Complete!", подтверждающее успех операции.
...
Running transaction
Updating : libcurl-<new_version>.x86_64 1/4
Updating : curl-<new_version>.x86_64 2/4
Cleanup : curl-<old_version>.x86_64 3/4
Cleanup : libcurl-<old_version>.x86_64 4/4
Verifying : curl-<new_version>.x86_64 1/4
...
Updated:
curl.x86_64 <new_version>
Dependency Updated:
libcurl.x86_64 <new_version>
Complete!
Вы успешно обновили отдельный пакет и его зависимости. Такой точечный подход полезен для быстрого применения исправлений безопасности или получения новых функций без проведения масштабного обновления всей системы.
Полное обновление системы с помощью 'yum update'
На этом этапе вы выполните самую важную и распространенную задачу по управлению пакетами: полное обновление системы. Хотя точечное обновление полезно, регулярное обновление всего программного обеспечения в комплексе необходимо для поддержания безопасности, стабильности и получения последних исправлений.
Команда yum update, запущенная без указания конкретного имени пакета, проверит все установленные программы на наличие новых версий во всех активных репозиториях и обновит каждый пакет, для которого найдена замена.
Внимание: Этот процесс может потребовать загрузки большого объема данных и занять значительное время, в зависимости от количества обновлений и скорости вашего интернет-соединения.
Чтобы начать полное обновление системы, выполните:
sudo yum update
Как и в случае с одиночным пакетом, yum сначала разрешит все зависимости, а затем выведет сводку транзакции. На этот раз список, скорее всего, будет гораздо длиннее.
Resolving Dependencies
--> Running transaction check
... (перечислено много пакетов) ...
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
bind-libs x86_64 <version> updates <size>
bind-license noarch <version> updates <size>
glibc x86_64 <version> updates <size>
glibc-common x86_64 <version> updates <size>
... (и многие другие) ...
Transaction Summary
================================================================================
Upgrade <X> Packages
Total download size: <total_size>
Is this ok [y/d/N]:
Внимательно просмотрите список пакетов. В рамках данной лабораторной работы введите n, чтобы отменить операцию, так как полное обновление всех компонентов может занять слишком много времени.
Поздравляем! Вы освоили фундаментальный навык администрирования любого Linux-сервера или рабочей станции, который позволяет поддерживать систему в безопасном и надежном состоянии.
Резюме
В ходе этой лабораторной работы вы изучили основы управления программным обеспечением в Linux-системах на базе RHEL с помощью пакетного менеджера YUM. Вы начали с инспекции установленных пакетов через yum list для проверки их статуса и версии, а также использовали yum deplist для анализа их зависимостей. Вы также научились просматривать активные источники программного обеспечения с помощью команды yum repolist.
Далее вы прошли через весь цикл обновления ПО. Вы научились проверять наличие доступных обновлений для всей системы без их немедленной установки с помощью yum check-update. Вы попрактиковались в точечном обновлении конкретного пакета командой yum update <package> и завершили работу изучением процедуры полного обновления системы через yum update, что позволяет поддерживать всю программную среду в актуальном и защищенном состоянии.



