Zoeken op website

4 manieren om bepaalde pakketupdates uit te schakelen/te vergrendelen met behulp van Yum Command


Pakketbeheer is software waarmee een gebruiker nieuwe software kan installeren, het systeem kan upgraden of specifieke software kan updaten en dergelijke. In het geval van op Linux gebaseerde systemen waarbij één software veel afhankelijkheden heeft die op het systeem aanwezig moeten zijn voor een volledige installatie van die software, worden dergelijke software-achtige pakketbeheerders een broodnodige tool op elk systeem.

Elke Linux-distributie wordt geleverd met zijn standaard pakketbeheerder voor bovengenoemde functionaliteiten, maar van al deze meest gevonden functionaliteiten zijn: yum op RHEL en Fedora systemen (waar het momenteel wordt vervangen door DNF vanaf Fedora 22+ en later) en apt van Debian.

Als u op zoek bent naar een APT-tool om bepaalde specifieke pakketupdates te blokkeren of uit te schakelen, dan moet u dit artikel lezen.

Dnf of Danified yum vervangt yum op Fedora systemen, een andere in onze lijst. Indien goed onderzocht, kunnen deze pakketbeheerders worden gebruikt voor de volgende functionaliteiten:

  1. Nieuwe software installeren vanuit de repository.
  2. Los de afhankelijkheden van de software op door deze afhankelijkheden te installeren voordat u de software installeert.
  3. Onderhouden van een database met afhankelijkheden van elke software.
  4. Downgrade de versie van bestaande software.
  5. De kernelversie upgraden.
  6. Lijstpakketten die beschikbaar zijn voor installatie.

We hebben al gedetailleerde artikelen afzonderlijk behandeld over elke individuele pakketbeheerder met praktische voorbeelden. U moet ze lezen om het pakketbeheer in uw respectievelijke Linux-distributies te controleren en te beheren.

Lees ook:

  1. Beheers Yum Command met deze 20 praktische voorbeelden
  2. 27 DNF-opdrachten om pakketten te beheren in Fedora 22+ versies
  3. Leer 25 APT-opdrachten om Ubuntu-pakketten te beheren

In het artikel zullen we zien hoe je bepaalde pakketupdates kunt vergrendelen/uitschakelen met behulp van Yum pakketbeheerder in RHEL/CentOS- en Fedora-systemen (van toepassing tot Fedora 21, latere nieuwere Fedora-versie wordt geleverd met dnf als standaard pakketbeheerder).

Schakel pakketupdates uit/vergrendel ze met Yum

Yellow dog Updater, Modified (yum) is een pakketbeheertool in op RedHat gebaseerde distributies zoals CentOS en Fedora. Verschillende strategieën die worden gebruikt om pakketupdates te vergrendelen/uitschakelen met Yum worden hieronder besproken:

1. Schakel het pakket permanent uit voor installatie of update

1. Open en bewerk het bestand yum.conf, dat zich bevindt in /etc/yum.conf of in /etc/ yum/yum.conf.

Het ziet er als volgt uit:

[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=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
...

Om een bepaald pakket uit te sluiten van installatie of upgrade hoeft u hier alleen maar de uitsluitingsvariabele toe te voegen, samen met de naam van het pakket dat u wilt uitsluiten. Als ik bijvoorbeeld wil uitsluiten dat alle python-3 pakketten worden bijgewerkt, dan voeg ik gewoon de volgende regel toe aan yum.conf:

exclude=python-3*

Als u meer dan één pakket wilt uitsluiten, scheidt u de namen eenvoudig met een spatie.

exclude=httpd php 
[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=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
exclude=python-3*        [Exclude Single Package]
exclude=httpd php        [Exclude Multiple Packages]
...

Opmerking: om deze pakketten op te nemen, waarbij u de vermeldingen in yum.conf negeert, gebruikt u “-disableexcludes ” en stelt u het naar all|main|repoid, waarbij 'main' degene zijn die zijn ingevoerd in yum.conf en 'repoid' > zijn degenen waarvan de uitsluiting is gespecificeerd in de map repos.d, zoals later wordt uitgelegd.

Laten we nu proberen de gespecificeerde pakketten te installeren of bij te werken en zien dat de yum-opdracht de installatie of update ervan zal uitschakelen.

# yum install httpd php

Loaded plugins: fastestmirror, langpacks, versionlock
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: mirror.wanxp.id
 * extras: mirror.nbrc.ac.in
 * updates: mirror.nbrc.ac.in
Nothing to do
# yum update httpd php

Loaded plugins: fastestmirror, langpacks, versionlock
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: mirror.wanxp.id
 * extras: mirror.nbrc.ac.in
 * updates: mirror.nbrc.ac.in
No packages marked for update

2. Schakel het pakket tijdelijk uit voor installatie of update

2. Hierboven was een permanente oplossing om een pakket uit te sluiten, omdat dat pakket niet wordt bijgewerkt tenzij het bestand wordt bewerkt. Hier is ook een tijdelijke oplossing voor. Net op het moment dat u voor een update kiest, gebruikt u de -x-schakelaar in het yum-commando om pakketten uit te sluiten die u niet wilt bijwerken, zoals:

yum -x python-3 update

Met het bovenstaande commando worden alle pakketten bijgewerkt waarvan updates beschikbaar zijn, met uitzondering van python-3 op uw systeem.

Om meerdere pakketten uit te sluiten, gebruikt u hier -x meerdere keren, of scheidt u de pakketnamen met ',' in één enkele schakelaar.

yum -x httpd -x php update
OR
yum -x httpd,php update

3. Het gebruik van de schakelaar --exclude werkt hetzelfde als -x, je hoeft alleen -x te vervangen door >–exclude en geef ',' een gescheiden lijst met pakketnamen eraan door.

yum --exclude httpd,php

3. Schakel pakketupdates uit met behulp van Repository

4. Voor elk pakket dat vanaf een externe bron wordt geïnstalleerd via het toevoegen van een repository, is er een andere manier om de upgrade ervan in de toekomst te stoppen. Dit kan worden gedaan door het .repo bestand te bewerken dat is gemaakt in /etc/yum/repos.d/ of /etc/yum.repos.d< map.

Voeg de uitsluitingsoptie toe met de pakketnaam in de repository. Zoals: om elk pakket, bijvoorbeeld wijn, uit te sluiten van epel repo, voegt u de volgende regel toe aan het bestand epel.repo:

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

Probeer nu het wijn-pakket bij te werken. U krijgt een foutmelding zoals hieronder weergegeven:

# yum update wine

Loaded plugins: fastestmirror, langpacks, versionlock
epel/x86_64/metalink                                    | 5.6 kB     00:00     
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: mirror.wanxp.id
 * extras: mirror.nbrc.ac.in
 * updates: mirror.nbrc.ac.in
No Match for argument: wine
No package wine available.
No packages marked for update

4. Schakel pakketupdate uit met behulp van de versievergrendelingsoptie

5. Een andere manier in yum om de versie van een pakket te maskeren, waardoor het niet beschikbaar is voor upgrades, is door de versionlock optie van yum te gebruiken, maar om dit te doen, moet je moet het yum-plugin-versionlock pakket op het systeem geïnstalleerd zijn.

yum -y install yum-versionlock

Om bijvoorbeeld de versie van het pakket, bijvoorbeeld httpd tot en met 2.4.6, te vergrendelen, hoeft u alleen maar het volgende commando als root te schrijven.

yum versionlock add httpd
Voorbeelduitvoer
Loaded plugins: fastestmirror, langpacks, versionlock
Adding versionlock on: 0:httpd-2.4.6-40.el7.centos
versionlock added: 1

Om vergrendelde pakketten te bekijken, gebruikt u de volgende opdracht. Hiermee worden de pakketten weergegeven waarvan de versie is vergrendeld.

yum versionlock list httpd
Voorbeelduitvoer
Loaded plugins: fastestmirror, langpacks, versionlock
0:httpd-2.4.6-40.el7.centos.*
versionlock list done

Conclusie

Dit zijn een paar tips die je zullen helpen bij het uitschakelen/vergrendelen van pakketupdates met behulp van yum pakketbeheer. Als je nog andere trucs hebt om dezelfde dingen te doen, kun je deze bij ons becommentariëren.