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

Заключение

Таким образом, вы можете исключить обновления для любых пакетов, которые вам нужны.

см. также:

 

 

Поделитесь статьей:

Добавить комментарий