4 būdai, kaip išjungti/užrakinti tam tikrus paketų naujinimus naudojant „Yum“ komandą


Paketų tvarkyklė – tai programinė įranga, leidžianti vartotojui įdiegti naują programinę įrangą, atnaujinti sistemą arba atnaujinti bet kokią konkrečią programinę įrangą ir panašius dalykus. „Linux“ pagrįstų sistemų atveju, kai viena programinė įranga turi daug priklausomybių, kurios turi būti sistemoje, kad būtų galima visiškai įdiegti tą programinę įrangą, tokia programinė įranga kaip paketų tvarkyklė tampa labai reikalinga priemone kiekvienoje sistemoje.

Kiekviename „Linux“ paskirstyme yra numatytasis paketų tvarkytuvas, skirtas aukščiau nurodytoms funkcijoms, tačiau iš visų šių dažniausiai randamų yra: yum RHEL ir Fedora sistemose. (kur jis šiuo metu pakeičiamas DNF nuo Fedora 22+) ir apt iš Debian.

Jei ieškote APT įrankio, skirto blokuoti arba išjungti tam tikrus paketo naujinius, turėtumėte perskaityti šį straipsnį.

Dnf arba Danified yum pakeičia yum Fedora sistemose, kurios yra dar viena mūsų sąraše. Tinkamai ištyrus šiuos paketų tvarkykles galima atlikti šias funkcijas:

  1. Naujos programinės įrangos diegimas iš saugyklos.
  2. Išspręskite programinės įrangos priklausomybes įdiegdami tas priklausomybes prieš diegdami programinę įrangą.
  3. Kiekvienos programinės įrangos priklausomybių duomenų bazės tvarkymas.
  4. Atnaujinkite bet kurios esamos programinės įrangos versiją.
  5. Branduolio versijos atnaujinimas.
  6. Galimi įdiegti sąrašų paketai.

Jau aprašėme išsamius straipsnius apie kiekvieną atskirą paketų tvarkyklę su praktiniais pavyzdžiais, todėl turėtumėte juos perskaityti, kad galėtumėte valdyti ir valdyti paketų valdymą atitinkamuose Linux platinimuose.

Taip pat skaitykite:

  1. Įvaldykite Yum komandą naudodami šiuos 20 praktinių pavyzdžių
  2. 27 DNF komandos paketams tvarkyti Fedora 22+ versijose
  3. Išmokite 25 APT komandas valdyti Ubuntu paketus

Straipsnyje pamatysime, kaip užrakinti/išjungti tam tikrus paketų naujinimus naudojant Yum paketų tvarkyklę RHEL/CentOS ir Fedora sistemose (taikoma iki Fedora 21, vėliau naujesnės Fedora versijos pristatoma naudojant dnf kaip numatytąjį paketų tvarkyklę).

Išjunkite/užrakinkite paketų naujinimus naudodami Yum

Geltonojo šuns naujinimo priemonė, modifikuota (yum) yra paketų valdymo įrankis RedHat pagrįstuose platinimuose, pvz., CentOS ir Fedora. Toliau aptariamos įvairios strategijos, naudojamos paketų naujinimams užrakinti/išjungti naudojant Yum:

1. Visam laikui išjunkite paketą, kad galėtumėte įdiegti arba atnaujinti

1. Atidarykite ir redaguokite yum.conf failą, kuris yra /etc/yum.conf arba /etc/ yum/yum.conf.

Tai atrodo žemiau:

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

Čia, norėdami neįtraukti tam tikro paketo iš diegimo ar atnaujinimo, tereikia pridėti išskirtinį kintamąjį kartu su paketo, kurį norite išskirti, pavadinimu. Pavyzdžiui, jei noriu, kad visi python-3 paketai nebūtų atnaujinti, prie yum.conf tiesiog pridėsiu šią eilutę:

exclude=python-3*

Jei norite neįtraukti daugiau nei vieno paketo, tiesiog atskirkite jų pavadinimus tarpu.

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

Pastaba: norėdami įtraukti šiuos paketus, nepaisydami įrašų yum.conf, naudokite „-disableexcludes“ ir nustatykite jį į all|main|repoid, kur "pagrindinis" yra įvestos yum.conf ir "repoid" > yra tie, kurių išskyrimas nurodytas kataloge repos.d, kaip paaiškinta vėliau.

Dabar pabandykime įdiegti arba atnaujinti nurodytus paketus ir pamatysime, kad komanda yum išjungs jų diegimą ar atnaujinimą.

# 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. Laikinai išjunkite paketą diegti arba atnaujinti

2. Aukščiau buvo nuolatinis sprendimas neįtraukti paketo, nes neredaguojant failo, paketas nebus atnaujintas. Čia taip pat yra laikinas sprendimas. Tiesiog tuo metu, kai ieškote bet kokio atnaujinimo, komandoje yum naudokite jungiklį -x, kad neįtrauktumėte paketo, kurio nenorite atnaujinti, pvz.:

yum -x python-3 update

Aukščiau pateikta komanda atnaujins visus paketus, kurių naujinimai yra prieinami, išskyrus python-3 jūsų sistemoje.

Jei norite išskirti kelis paketus, kelis kartus naudokite -x arba atskirkite paketų pavadinimus su ',' viename jungiklyje.

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

3. Naudojant jungiklį --exclude veikia taip pat kaip -x, tereikia pakeisti -x į >–išskirti ir perduoti jam ',' atskirtą paketų pavadinimų sąrašą.

yum --exclude httpd,php

3. Išjunkite paketų naujinimus naudodami saugyklą

4. Jei paketas įdiegtas iš bet kurio išorinio šaltinio pridedant saugyklą, yra kitas būdas sustabdyti jo atnaujinimą ateityje. Tai galima padaryti redaguojant .repo failą, kuris sukurtas /etc/yum/repos.d/ arba /etc/yum.repos.d< katalogą.

Pridėkite išskyrimo parinktį su paketo pavadinimu repo. Patinka: norėdami neįtraukti bet kokio paketo, pvz., vynoepel repo, faile epel.repo pridėkite šią eilutę:

[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

Dabar pabandykite atnaujinti vyno paketą, gausite klaidą, kaip parodyta toliau:

# 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. Išjunkite paketo naujinimą naudodami versijos užrakto parinktį

5. Kitas būdas programoje „yum“ užmaskuoti bet kurio paketo versiją, kad jo nebūtų galima atnaujinti, yra naudoti „yum“ parinktį versijos užraktas, tačiau norėdami tai padaryti, sistemoje turi būti įdiegtas yum-plugin-versionlock paketas.

yum -y install yum-versionlock

Pavyzdžiui, norėdami užrakinti paketo versiją, pasakykite tik httpd į 2.4.6, tiesiog parašykite šią komandą kaip root.

yum versionlock add httpd
Pavyzdžio išvestis
Loaded plugins: fastestmirror, langpacks, versionlock
Adding versionlock on: 0:httpd-2.4.6-40.el7.centos
versionlock added: 1

Norėdami peržiūrėti užrakintus paketus, naudokite šią komandą, kurioje bus išvardyti paketai, kurių versija buvo užrakinta.

yum versionlock list httpd
Pavyzdžio išvestis
Loaded plugins: fastestmirror, langpacks, versionlock
0:httpd-2.4.6-40.el7.centos.*
versionlock list done

Išvada

Tai yra keli patarimai, kurie padės išjungti/užrakinti paketo naujinimus naudojant „yum“ paketų tvarkyklę. Jei turite kitų gudrybių, kaip atlikti tuos pačius veiksmus, galite jas komentuoti su mumis.