Вопрос или проблема
Скриншот просто показывает, как dnf
запрашивает включенные репозитории для проверки наличия пакетов; он не “обновляет” ничего в них. Обратите внимание, что также указано, что httpd
уже установлен, так что ничего делать не нужно.
Когда вы устанавливаете пакет, система может установить новые пакеты или обновить уже установленные пакеты из-за зависимостей.
Ответ или решение
Когда вы запускаете команду sudo dnf install httpd
в CentOS Stream 9, может показаться, что система обновляет все уже установленные пакеты. Однако на самом деле это нормальное поведение пакетного менеджера DNF, и ниже представлен более подробный анализ происходящего.
Факторы, влияющие на поведение DNF
-
Проверка зависимостей: При установке нового пакета DNF автоматически проверяет все зависимости. Это означает, что если для пакета
httpd
есть обновления связанных библиотек или другим пакетов, которые необходимы для его корректной работы, DNF выполнит их обновление. Это сделано для обеспечения совместимости и корректной работы программного обеспечения. -
Кэширование метаданных: DNF использует кэширование, чтобы избежать лишних запросов к репозиториям. В процессе обновления пакетов DNF может обновить метаданные с серверов репозиториев, чтобы получить информацию о последних доступных версиях пакетов. Это может создать впечатление, что все пакеты обновляются, хотя на самом деле это всего лишь обновление информации о репозиториях.
-
Установленные пакеты: Если пакет
httpd
уже установлен, DNF проверяет его текущую версию. Если пакет не обновлялся, то он не будет переустановлен. Однако, если у него есть какие-либо обновления, система предложит их установить. -
Стратегия разрешения зависимостей: Разные пакеты могут иметь разные стратегии разрешения зависимостей. Например, если пакет
httpd
зависит от модуля, который требуется обновить, в процессе установки DNF может предложить обновление этих модулей.
Как это влияет на вас
Если вы сталкиваетесь с ситуацией, когда команда sudo dnf install httpd
приводит к обновлению других пакетов, это нормально и ожидаемо. Чтобы разъяснить это поведение, вы можете использовать опцию --setopt=install_weak_deps=False
, чтобы избежать установки слабых зависимостей. Но будьте осторожны: это может привести к нестабильности или отсутствию функции, если пакет, который вы хотите установить, зависит от этих слабых зависимостей.
Рекомендации
- Проверяйте доступные версии: Используйте команду
dnf list installed httpd
для проверки установленной версии иdnf info httpd
для получения информации о пакете. - Часто обновляйте систему: Регулярное обновление всей системы может повысить стабильность и безопасность.
- Внимательно читайте сообщения DNF: Каждое действие DNF сопровождается сообщениями. Внимательно изучайте их — возможно, именно там содержатся ответ на ваши вопросы о том, почему обновляются определенные пакеты.
Заключение
Таким образом, команда sudo dnf install httpd
, которую вы исполняете, не действительно обновляет все установленные репозитории. DNF просто обрабатывает запрос на установку, проверяя зависимости и актуальные версии пакетов в репозиториях. Если вы хотите избежать обновления других пакетов, уделяйте внимание информации о зависимостях и используйте соответствующие опции командной строки. Это обеспечит нужный вам уровень контроля над установленными пакетами.