4 tapaa poistaa/lukita tiettyjä pakettipäivityksiä Yum-komennolla


Paketinhallinta on ohjelmisto, jonka avulla käyttäjä voi asentaa uuden ohjelmiston, päivittää järjestelmää tai päivittää tiettyä ohjelmistoa tai muuta vastaavaa. Linux-pohjaisissa järjestelmissä, joissa yhdellä ohjelmistolla on paljon riippuvuuksia, jotka vaaditaan järjestelmässä, jotta ohjelmisto voidaan asentaa täydellisesti, sellaisista ohjelmistoista, kuten paketinhallinnasta, tulee erittäin tarpeellinen työkalu jokaisessa järjestelmässä.

Jokaisen Linux-jakelun mukana toimitetaan oletuspakettien hallintaohjelma yllämainituille toiminnoille, mutta kaikista näistä löydetyimmistä ovat: yum RHEL- ja Fedora-järjestelmissä. (jossa se on tällä hetkellä korvattu DNF:llä Fedora 22+ -versiosta alkaen) ja apt Debianista.

Jos etsit APT-työkalua tiettyjen pakettipäivitysten estämiseen tai poistamiseen käytöstä, sinun tulee lukea tämä artikkeli.

Dnf tai Danified yum korvaa yumin Fedora-järjestelmissä, joka on toinen luettelossamme. Jos näitä paketinhallintaohjelmia tutkitaan oikein, niitä voidaan käyttää seuraaviin toimintoihin:

  1. Uuden ohjelmiston asentaminen arkistosta.
  2. Ratkaise ohjelmiston riippuvuudet asentamalla kyseiset riippuvuudet ennen ohjelmiston asentamista.
  3. Jokaisen ohjelmiston riippuvuuksien tietokannan ylläpito.
  4. Päivitä minkä tahansa olemassa olevan ohjelmiston versio.
  5. Ytimen version päivitys.
  6. Listauspaketit saatavana asennettavaksi.

Olemme jo käsitelleet yksityiskohtaisia artikkeleita erikseen jokaisesta yksittäisestä paketinhallinnasta käytännön esimerkein, sinun tulee lukea ne hallitaksesi ja hallitaksesi pakettien hallintaa vastaavissa Linux-jakeluissasi.

Lue myös:

  1. Hallitse Yum-komento tällä 20 käytännön esimerkillä
  2. 27 DNF-komentoa pakettien hallintaan Fedora 22+ -versioissa
  3. Opi 25 APT-komentoa Ubuntu-pakettien hallintaan

Tässä artikkelissa näemme, kuinka lukita/poistaa tietyt pakettipäivitykset Yum-paketinhallinnan avulla RHEL/CentOS- ja Fedora-järjestelmissä (sovelletaan Fedora 21:een asti, uudempi Fedora-versio toimitetaan dnf:n oletuspaketinhallinnan avulla).

Poista/lukitse pakettipäivitykset Yumin avulla

Yellow dog Updater, Modified (yum) on paketinhallintatyökalu RedHat-pohjaisissa jakeluissa, kuten CentOS ja Fedora. Erilaisia strategioita, joita käytetään pakettipäivitysten lukitsemiseen/poistamiseen Yumin avulla, käsitellään alla:

1. Poista paketti pysyvästi käytöstä asennusta tai päivitystä varten

1. Avaa ja muokkaa yum.conf-tiedostoa, joka sijaitsee hakemistossa /etc/yum.conf tai /etc/. yum/yum.conf.

Se näyttää alta:

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

Jos haluat sulkea tietyn paketin pois asennuksesta tai päivityksestä, sinun tarvitsee vain lisätä poissulkemismuuttuja sekä poissuljettavan paketin nimi. Jos esimerkiksi haluan sulkea pois kaikki python-3-paketit päivittymästä, lisään vain seuraavan rivin yum.conf-tiedostoon:

exclude=python-3*

Jos haluat sulkea pois useamman kuin yhden paketin, erota niiden nimet välilyönnillä.

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

Huomaa: sisällyttääksesi nämä paketit ohittaen yum.conf-tiedoston merkinnät, käytä "-disableexcludes" ja aseta se on all|main|repoid, jossa 'main' ovat ne, jotka on syötetty yum.conf- ja 'repoid'-tiedostoihin. > ovat ne, joiden poissulkeminen on määritetty repos.d-hakemistossa, kuten myöhemmin selitetään.

Yritetään nyt asentaa tai päivittää määritetyt paketit ja nähdä, että yum-komento estää niiden asennuksen tai päivityksen.

# 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. Poista paketti tilapäisesti käytöstä asennusta tai päivitystä varten

2. Yllä oli pysyvä ratkaisu paketin sulkemiseen pois, koska ellei tiedostoa muokata, pakettia ei päivitetä. Tässä on myös väliaikainen ratkaisu tähän. Juuri kun haluat päivittää, käytä -x-kytkintä yum-komennossa sulkeaksesi pois paketin, jota et halua päivittää, kuten:

yum -x python-3 update

Yllä oleva komento päivittää kaikki paketit, joiden päivitykset ovat saatavilla, pois lukien järjestelmäsi python-3.

Jos haluat sulkea pois useita paketteja, käytä koodia -x useita kertoja tai erota pakettien nimet ',' -kytkimellä yhdessä kytkimessä.

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

3. --exclude-kytkimen käyttäminen toimii samalla tavalla kuin -x, vain täytyy korvata -x >–poissulje ja välitä sille ',' eroteltu pakettinimiluettelo.

yum --exclude httpd,php

3. Poista pakettien päivitykset käytöstä arkiston avulla

4. Jos paketti on asennettu mistä tahansa ulkoisesta lähteestä lisäämällä arkisto, on toinen tapa lopettaa sen päivitys tulevaisuudessa. Tämä voidaan tehdä muokkaamalla sen .repo-tiedostoa, joka on luotu tiedostossa /etc/yum/repos.d/ tai /etc/yum.repos.d<. hakemistosta.

Lisää poissulkemisvaihtoehto paketin nimellä repoon. Kuten: jos haluat sulkea pois paketin, sanotaan viini epel reposta, lisää seuraava rivi epel.repo-tiedostoon:

[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

Yritä nyt päivittää viini-paketti, saat alla olevan kaltaisen virheilmoituksen:

# 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. Poista paketin päivitys käytöstä versionlukitusvaihtoehdon avulla

5. Toinen tapa yumissa peittää minkä tahansa paketin versio, jolloin se ei ole saatavilla päivitystä varten, on käyttää yumin versionlock-vaihtoehtoa, mutta tehdäksesi tämän järjestelmään on asennettava paketti yum-plugin-versionlock.

yum -y install yum-versionlock

Jos esimerkiksi haluat lukita paketin version sanomalla vain httpd arvoon 2.4.6, kirjoita seuraava komento pääkäyttäjänä.

yum versionlock add httpd
Näytelähtö
Loaded plugins: fastestmirror, langpacks, versionlock
Adding versionlock on: 0:httpd-2.4.6-40.el7.centos
versionlock added: 1

Jos haluat tarkastella lukittuja paketteja, käytä seuraavaa komentoa, joka näyttää paketit, jotka on versiolukittu.

yum versionlock list httpd
Näytelähtö
Loaded plugins: fastestmirror, langpacks, versionlock
0:httpd-2.4.6-40.el7.centos.*
versionlock list done

Johtopäätös

Nämä ovat muutamia vinkkejä, jotka auttavat sinua poistamaan/lukitsemaan pakettipäivitykset yum-paketinhallinnan avulla. Jos sinulla on muita temppuja samojen asioiden tekemiseen, voit kommentoida niitä kanssamme.