Hvernig á að slökkva á pakkauppfærslum með YUM/DNF í RHEL Linux


Red Hat-undirstaða Linux dreifing, sem er notuð til að fá, setja upp, uppfæra, fjarlægja og spyrjast fyrir um pakka frá opinberum hugbúnaðargeymslum og geymslum þriðja aðila.

Við uppfærslur á kerfinu uppfærum við stundum ekki ákveðna pakka eins og Apache Server (HTTP), MySQL, PHP eða önnur helstu forrit, vegna þess að uppfærsla á slíkum hugbúnaði getur bilað netforrit sem eru í gangi á netþjóni og valdið meiriháttar vandamálum. Mælt er með því að stöðva uppfærslur fyrir slíkan hugbúnað þar til forritið verður lagfært með nýjum uppfærslum.

Í þessari grein munum við sýna þér hvernig við getum útilokað (slökkt á) ákveðnum pakkauppfærslum með því að nota YUM og DNF pakkastjórann á RPM byggðum dreifingum eins og RHEL, CentOS, Fedora, Rocky Linux og AlmaLinux. Við getum líka útilokað eða slökkt á ákveðnum pakkauppfærslum frá geymslum þriðja aðila.

Útiloka setningafræðin væri sem hér segir.

exclude=package package1 packages*

Ofangreind útilokunartilskipun er skilgreind í /etc/yum.conf eða /etc/dnf/dnf.conf stillingarskránni með lista yfir pakka sem á að útiloka frá uppfærslum eða uppsetningum.

Ofangreind setningafræði mun útiloka „pakka“, „pakka1“ og lista yfir „pakka“ uppfærslur eða uppsetningar. Hvert leitarorð ætti að vera aðskilið með plássi til að útiloka pakka.

Hvernig á að útiloka pakka í YUM eða DNF

Til að útiloka (slökkva á) tilteknum pakkauppfærslum, opnaðu skrána sem heitir /etc/yum.conf eða /etc/dnf/dnf.conf með ritstjóra að eigin vali.

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

Bættu við eftirfarandi línu neðst í skránni með útiloka leitarorði eins og sýnt er hér að neðan.

[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

Í dæminu hér að ofan mun línan útiloka slökkva á uppfærslum fyrir „httpd“ „php“ og „mysql“ pakka. Við skulum reyna að setja upp eða uppfæra einn þeirra með YUM skipuninni eins og sýnt er hér að neðan.

# 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

Hvernig á að útiloka pakka frá EPEL Repo

Til að útiloka pakkauppsetningar eða uppfærslur frá EPEL geymslunni, opnaðu síðan skrána sem heitir /etc/yum.repos.d/epel.repo.

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

Bættu við útilokunarlínunni með því að tilgreina pakka sem á að útiloka frá uppfærslunum.

[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

Reyndu nú að uppfæra ofangreindar skrár úr EPEL geymslunni með því að nota yum/dnf skipunina eins og sýnt er.

# 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.

Þú getur líka notað yum/dnf skipanalínuvalkostinn til að útiloka pakka án þess að bæta þeim við geymsluskrárnar.

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

Til að útiloka lista yfir pakka skaltu nota skipunina sem hér segir.

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

Þannig geturðu útilokað uppfærslur fyrir hvaða pakka sem þú vilt. Það eru margar aðrar leiðir sem þú getur gert það, til dæmis höfum við nýlega tekið saman grein um 4 gagnlegar leiðir til að loka/slökkva á eða læsa ákveðnum pakka með yum skipuninni í Linux.