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.