DNF (Dandified Yum) – это версия нового поколения YUM (Yellowdog Updater, Modified), это менеджер пакетов с открытым исходным кодом по умолчанию для дистрибутивов Linux на базе Red Hat, который используется для получения, установки, обновления, удаления и запроса пакетов из официальных репозиториев программного обеспечения и сторонних репозиториев.
Обновляя систему, иногда мы не обновляем некоторые пакеты, такие как Apache Server (HTTP), MySQL, PHP или любое другое крупное приложение, поскольку обновление такого программного обеспечения может нарушить работу текущих веб-приложений на сервере и вызвать серьезные проблемы.
Рекомендуется приостановить обновление такого программного обеспечения до тех пор, пока приложение не будет исправлено новыми обновлениями.
В этой статье мы покажем вам, как можно исключить (отключить) обновления определенных пакетов с помощью менеджера пакетов YUM и DNF в дистрибутивах на базе RPM, таких как RHEL, CentOS, Fedora, Rocky Linux и AlmaLinux.
Мы также можем исключить или отключить определенные обновления пакетов из любых сторонних репозиториев.
Синтаксис исключения будет следующим.
exclude=package package1 packages*
Приведенная выше директива exclude определяется в конфигурационном файле /etc/yum.conf или /etc/dnf/dnf.conf со списком пакетов, которые необходимо исключить из обновлений или установок.
Приведенный выше синтаксис исключит обновления или установки “package”, “package1” и список “package”.
Каждое ключевое слово должно быть разделено пробелом для исключения пакетов.
Как исключить пакеты в YUM или DNF
Ранее рассмотрели:
📦 Три способа как исключить определенные пакеты из обновления Yum Update
Чтобы исключить (запретить) обновления определенных пакетов, откройте файл /etc/yum.conf или /etc/dnf/dnf.conf с помощью выбранного вами редактора.
# vi /etc/yum.conf OR # vi /etc/dnf/dnf.conf
Добавьте следующую строку в нижней части файла с ключевым словом exclude, как показано ниже.
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release # This is the default, if you make this bigger yum won't see if the metadata # is newer on the remote and so you'll "gain" the bandwidth of not having to # download the new metadata and "pay" for it by yum not having correct # information. # It is esp. important, to have correct metadata, for distributions like # Fedora which don't keep old packages around. If you don't like this checking # interupting your command line usage, it's much better to have something # manually check the metadata once an hour (yum-updatesd will do this). # metadata_expire=90m # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d ## Exclude following Packages Updates ## exclude=httpd php mysql
В приведенном выше примере строка exclude отключит обновления для пакетов “httpd” “php” и “mysql”.
Давайте попробуем установить или обновить один из них с помощью команды YUM, как показано ниже.
# yum update httpd или # dnf update httpd
Пример вывода:
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.01link.hk * extras: centos.01link.hk * updates: mirrors.hns.net.in base | 3.7 kB 00:00 extras | 3.0 kB 00:00 updates | 3.5 kB 00:00 updates/primary_db | 2.7 MB 00:16 Setting up Update Process No Packages marked for Update
Вы также можете использовать опцию командной строки yum/dnf для исключения пакетов без добавления их в файлы репозитория.
# yum --exclude=httpd update или # dnf --exclude=httpd update
Чтобы исключить список пакетов, используйте команду следующим образом.
# yum --exclude=mysql\* --exclude=httpd\* update или # dnf --exclude=mysql\* --exclude=httpd\* update
Заключение
Таким образом, вы можете исключить обновления для любых пакетов, которые вам нужны.
см. также:
- 📦 Как отсортировать установленные пакеты по дате установки на Linux
- 📦 Как отобразить пакеты, которые больше не нужны на Linux
- 🐧 Как перечислить пакеты в определенном репозитории yum
- ✴ Как исправить неработающие пакеты в Ubuntu
- 🇧🇲 Как найти и удалить все пакеты Linux, установленные позже определенной даты или времени?
- Как удалить пакеты с зависимостями с помощью Yum