4 veidi, kā atspējot/bloķēt noteiktus pakotņu atjauninājumus, izmantojot komandu Yum


Package Manager ir programmatūra, kas ļauj lietotājam instalēt jaunu programmatūru, uzlabot sistēmu vai atjaunināt jebkuru īpašu programmatūru un šāda veida lietas. Uz Linux balstītu sistēmu gadījumā, kad vienai programmatūrai ir daudz atkarību, kas ir nepieciešamas, lai sistēmā būtu pilnīga šīs programmatūras instalēšana, šāda programmatūras pakotņu pārvaldnieks kļūst par ļoti nepieciešamu rīku katrā sistēmā.

Katrs Linux izplatītājs tiek piegādāts ar noklusējuma pakotņu pārvaldnieku iepriekš norādītajām funkcijām, taču no visām šīm visbiežāk sastopamajām ir: yum RHEL un Fedora sistēmās (kur tas pašlaik tiek aizstāts ar DNF no Fedora 22+) un apt no Debian.

Ja meklējat APT rīku, lai bloķētu vai atspējotu noteiktus specifiskus pakotņu atjauninājumus, izlasiet šo rakstu.

Dnf vai Danified yum aizstāj yum Fedora sistēmās, kas ir vēl viena mūsu sarakstā. Pareizi izpētot, šos pakotņu pārvaldniekus var izmantot šādām funkcijām:

  1. Jaunas programmatūras instalēšana no repozitorija.
  2. Atrisiniet programmatūras atkarības, pirms programmatūras instalēšanas instalējiet šīs atkarības.
  3. Katras programmatūras atkarību datu bāzes uzturēšana.
  4. pazemināt jebkuras esošās programmatūras versiju.
  5. Kodola versijas jaunināšana.
  6. Instalēšanai pieejamie pakotņu saraksti.

Detalizēti raksti par katru atsevišķu pakotņu pārvaldnieku jau ir apskatīti ar praktiskiem piemēriem. Jums tie ir jāizlasa, lai kontrolētu un pārvaldītu pakotņu pārvaldību attiecīgajos Linux izplatījumos.

Lasīt arī:

  1. Yum komandas apgūšana, izmantojot šos 20 praktiskos piemērus
  2. 27 DNF komandas pakotņu pārvaldībai Fedora 22+ versijās
  3. Uzziniet 25 APT komandas, lai pārvaldītu Ubuntu paketes

Rakstā mēs redzēsim, kā bloķēt/atspējot dažus pakotņu atjauninājumus, izmantojot Yum pakotņu pārvaldnieku RHEL/CentOS un Fedora sistēmās (piemērojams līdz Fedora 21, vēlāk jaunāka Fedora versija tiek piegādāta ar noklusējuma pakotņu pārvaldnieku dnf).

Atspējot/bloķēt pakešu atjauninājumus, izmantojot Yum

Dzeltenais suns Updater, Modified (yum) ir pakotņu pārvaldības rīks RedHat balstītos izplatījumos, piemēram, CentOS un Fedora. Dažādas stratēģijas, kas tiek izmantotas, lai bloķētu/atspējotu pakešu atjauninājumus, izmantojot Yum, tiek apspriestas tālāk:

1. Atveriet un rediģējiet failu yum.conf , kas atrodas mapē /etc/yum.conf vai /etc/yum/yum.conf.

Tas izskatās šādi:

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

Šeit, lai izslēgtu noteiktu paketi no instalēšanas vai jaunināšanas, jums vienkārši jāpievieno izslēgšanas mainīgais kopā ar paketes nosaukumu, kuru vēlaties izslēgt. Piemēram, ja es gribu izslēgt visu python-3 pakotņu atjaunināšanu, es tikai pievienošu šādu rindiņu yum.conf :

exclude=python-3*

Lai izslēgtu vairāk nekā vienu paketi, atdaliet to nosaukumus tikai ar atstarpi.

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

Piezīme. Lai iekļautu šīs paketes, ignorējot ierakstus yum.conf , izmantojiet “-disableexcludes” un iestatiet to uz visiem | main | repoid, kur 'main' ir tie, kas ievadīti yum.conf un 'repoid 'ir tie, kuru izslēgšana ir norādīta direktorijā repos.d, kā paskaidrots vēlāk.

Tagad mēģināsim instalēt vai atjaunināt norādītās paketes un redzēt, ka komanda yum atspējos to instalēšanu vai atjaunināšanu.

# 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. Iepriekš bija pastāvīgs risinājums paketes izslēgšanai, jo, ja fails nav rediģēts, šī pakete netiks atjaunināta. Šeit ir arī pagaidu risinājums. Tajā laikā, kad meklējat kādu atjauninājumu, komandā yum izmantojiet slēdzi -x , lai izslēgtu pakotni, kuru nevēlaties atjaunināt, piemēram:

# yum -x python-3 update

Iepriekš minētā komanda atjauninās visas paketes, kuru atjauninājumi ir pieejami, izņemot jūsu sistēmā python-3 .

Šeit, lai izslēgtu vairākus iepakojumus, izmantojiet -x vairākas reizes vai vienā slēdzī atdaliet pakotņu nosaukumus ar , .

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

3. Slēdža --exclude izmantošana darbojas tāpat kā -x, vienkārši jāaizstāj -x ar –exclude un jānodod , atdalīts pakotņu nosaukumu saraksts.

# yum --exclude httpd,php

4. Jebkurai pakotnei, kas instalēta no jebkura ārēja avota, pievienojot repozitoriju, ir vēl viens veids, kā apturēt tā pakāpenisku paaugstināšanu nākotnē. To var izdarīt, rediģējot tā .repo failu, kas izveidots direktorijā /etc/yum/repos.d/ vai /etc/yum.repos.d.

Repo pievienojiet opciju izslēgt ar pakotnes nosaukumu. Patīk: lai izslēgtu jebkuru iepakojumu, teiksim vīns no epel repo, failā epel.repo pievienojiet šādu rindu:

[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

Tagad mēģiniet atjaunināt vīna paketi, un saņemsit kļūdu, kā parādīts zemāk:

# 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

5. Vēl viens veids, kā yum maskēt jebkuras pakotnes versiju, tādējādi padarot to nepieejamu pakāpeniskai paaugstināšanai, ir yum opcijas versionlock izmantošana, taču, lai to izdarītu, jums ir jāizmanto pakete yum-plugin-versionlock instalēta sistēmā.

# yum -y install yum-versionlock

Piemēram, lai bloķētu pakotnes versiju, teiksim tikai httpd līdz 2.4.6, vienkārši ierakstiet šādu komandu kā root.

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

Lai skatītu bloķētās paketes, izmantojiet šo komandu, kurā būs uzskaitīti paketes, kas ir bloķētas versijā.

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

Secinājums

Šie ir daži padomi, kas palīdzēs atspējot/bloķēt pakešu atjauninājumus, izmantojot yum pakotņu pārvaldnieku. Ja jums ir kādi citi triki, lai veiktu tās pašas lietas, varat tos komentēt pie mums.