Pakettipäivitykset poistaminen käytöstä YUM/DNF:n avulla RHEL Linuxissa


Red Hat -pohjaiset Linux-jakelut, joita käytetään pakettien hankkimiseen, asentamiseen, päivittämiseen, poistamiseen ja kyselyihin virallisista ohjelmistovarastoista ja kolmansien osapuolien tietovarastoista.

Järjestelmää päivitettäessä emme toisinaan päivitä tiettyjä paketteja, kuten Apache Server (HTTP), MySQL, PHP tai muita tärkeitä sovelluksia, koska tällaisten ohjelmistojen päivittäminen voi rikkoa palvelimella käynnissä olevia verkkosovelluksia ja aiheuttaa suuria ongelmia. On suositeltavaa pysäyttää tällaisten ohjelmistojen päivitykset, kunnes sovellukseen on korjattu uusia päivityksiä.

Tässä artikkelissa näytämme, kuinka voimme sulkea pois (poistaa) tietyt pakettipäivitykset YUM- ja DNF-paketinhallintaa käyttämällä RPM-pohjaisissa jakeluissa, kuten RHEL, CentOS, Fedora, Rocky Linux ja AlmaLinux. Voimme myös sulkea pois tai poistaa käytöstä tietyt pakettipäivitykset mistä tahansa kolmannen osapuolen tietovarastosta.

Poissulkemissyntaksi olisi seuraava.

exclude=package package1 packages*

Yllä oleva poissulkemisohje on määritetty /etc/yum.conf- tai /etc/dnf/dnf.conf-määritystiedostossa, jossa on luettelo päivityksistä tai asennuksista poissuljettavista paketeista.

Yllä oleva syntaksi sulkee pois paketti, paketti1 ja paketti-päivitysten tai -asennusten luettelo. Jokainen avainsana tulee erottaa välilyönnillä pakettien poissulkemiseksi.

Pakettien sulkeminen pois YUM:ssa tai DNF:ssä

Jos haluat sulkea pois (poistaa) tietyt pakettipäivitykset, avaa tiedosto /etc/yum.conf tai /etc/dnf/dnf.conf valitsemallasi editorilla.

# vi /etc/yum.conf
OR
# vi /etc/dnf/dnf.conf

Lisää tiedoston alaosaan seuraava rivi poissulkemisavainsanalla alla olevan kuvan mukaisesti.

[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

Yllä olevassa esimerkissä rivin poissulkeminen poistaa käytöstä httpd php- ja mysql-pakettien päivitykset. Yritetään asentaa tai päivittää yksi niistä käyttämällä YUM-komentoa alla olevan kuvan mukaisesti.

# yum update httpd
OR
# 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

Pakettien sulkeminen pois EPEL Reposta

Jos haluat sulkea pois pakettien asennukset tai päivitykset EPEL-varastosta, avaa tiedosto nimeltä /etc/yum.repos.d/epel.repo.

# vi /etc/yum.repos.d/epel.repo

Lisää poissulkemisrivi määrittämällä paketit, jotka suljetaan pois päivityksistä.

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
## Exclude following Packages Updates ##
exclude=perl php python

Yritä nyt päivittää yllä määritetyt tiedostot EPEL-arkistosta käyttämällä yum/dnf-komentoa kuvan mukaisesti.

# dnf update perl php python
OR
# yum update perl php python
Last metadata expiration check: 0:00:37 ago on Wednesday 17 November 2021 03:41:28 AM EST.
Package perl available, but not installed.
No match for argument: perl
No match for argument: php
No match for argument: python
Error: No packages marked for upgrade.

Voit myös käyttää yum/dnf-komentorivivaihtoehtoa sulkeaksesi pois paketteja lisäämättä niitä arkistotiedostoihin.

# yum --exclude=httpd update
Or
# dnf --exclude=httpd update

Jos haluat sulkea pois pakettiluettelon, käytä komentoa seuraavasti.

# yum --exclude=mysql\* --exclude=httpd\* update
Or
# dnf --exclude=mysql\* --exclude=httpd\* update

Tällä tavalla voit sulkea pois päivitykset kaikista haluamistasi paketeista. Voit tehdä sen monilla muilla tavoilla, esimerkiksi olemme äskettäin koonneet artikkelin neljästä hyödyllisestä tavasta estää/poistaa tai lukita tietyt paketit Linuxin yum-komennolla.