Sunday, October 13, 2024

4 Ways to Disable or Lock Package Updates in Yum and DNF

 https://www.tecmint.com/disable-package-updates-in-yum-and-dnf

A package manager is software that allows a user to install new software, upgrade the system, or update specific software, among other tasks. On Linux-based systems, where software often has many dependencies that must be present on the system for complete installation, tools like package managers become essential on every system.

Each Linux distribution ships with its default package manager for the above-mentioned functionalities, but the most commonly found ones are: Yum on RHEL and Fedora systems (where it is being replaced by DNF from Fedora 22+ onwards) and Apt on Debian-based systems.

If you’re looking for an APT tool to block or disable certain specific package updates on Ubuntu/Debian systems, then you should read this article.

DNF (Dandified YUM) is replacing YUM on Fedora systems, which is another one on our list. If explored properly, these package managers can be used for the following functionalities:

  • Installing new software from the repository.
  • Resolving dependencies of the software by installing those dependencies before installing the software.
  • Maintaining a database of dependencies for each software.
  • Downgrading the version of any existing software.
  • Upgrading the kernel version.
  • Listing packages available for installation.

In this guide, we’ll explore four simple methods to disable or lock certain package updates using Yum and DNF commands.

1. Permanently Disable Package Updates Using exclude Option

One of the easiest ways to stop specific packages from being updated is by using the exclude option in the Yum or DNF configuration file, which tells the package manager to avoid updating certain packages.

Open the Yum or DNF configuration file.

sudo nano /etc/yum.conf        #Yum Configuration File
sudo nano /etc/dnf/dnf.conf    #DNF Configuration File

Add the exclude line at the bottom of the file, followed by the package names you want to block.

exclude=kernel* httpd

This prevents the system from updating all kernel-related packages and the Apache web server (httpd).

Exclude Package Updates in DNF
Exclude Package Updates in DNF

Now let’s try to install or update the specified package and see that the Yum or DNF command will disable it from being installed or updated.

sudo dnf install httpd
Preventing Package Installation in Linux
Preventing Package Installation in Linux

2. Temporarily Disable Package Updates Using exclude Option

If you don’t want to modify the configuration file permanently, you can exclude specific packages temporarily by using the --exclude option in the command line when running the Yum or DNF update.

sudo yum update --exclude=nginx php
sudo dnf update --exclude=nginx php

3. Excluding Specific Packages in Repositories

For any package installed from any external source via adding a repository, there is another way to stop its up-gradation in the future. This can be done by editing its repo-name.repo configuration file which is created in /etc/yum/repos.d/ or /etc/yum.repos.d directory.

Open the repository configuration file.

sudo nano /etc/yum.repos.d/repo-name.repo

Add the exclude line under the [repository] section:

exclude=package1 package2

For example, if you want to exclude the mysql package from being updated from the epel repository, open /etc/yum.repos.d/epel.repo and add:

exclude=mysql*

This will block updates for mysql from this specific repository.

4. Disable Package Updates Using versionlock Option

Both Yum and DNF offer plugins that can lock specific versions of packages, preventing them from being updated and this is done using the versionlock plugin.

For Yum:

  • Install versionlock package: sudo yum install yum-plugin-versionlock
  • Lock a specific package version: sudo yum versionlock add httpd
  • To view all locked packages: sudo yum versionlock list
  • To remove a package from the version lock: sudo yum versionlock delete httpd

For Dnf:

  • Install versionlock package: sudo dnf install dnf-plugins-core
  • Lock a specific package version: sudo dnf versionlock add httpd
  • To view all locked packages: sudo dnf versionlock list
  • To remove a package from the version lock: sudo dnf versionlock delete httpd
Conclusion

By using these four methods-modifying the Yum or DNF configuration file, using the --exclude option in commands, utilizing the versionlock plugin, or configuring repository exclusions – you can easily disable or lock package updates in your RPM-based Linux system.

 

No comments:

Post a Comment