Atspējojiet dažus pakotņu atjauninājumus, izmantojot YUM, RHEL/CentOS/Fedora


YUM (Yellowdog Updater Modified) ir atvērtā koda noklusējuma pakotņu pārvaldības sistēma vairākām Linux garšām, piemēram, RHEL (Red Hat Enterprise Linux), CentOS (Kopienas uzņēmumu operētājsistēma) un Fedora. YUM utilīta tiek izmantota instalēt, jaunināt, noņemt uz rpm balstītas paketes no izplatīšanas krātuvēm sistēmās.

Bet dažreiz mēs nevēlamies atjaunināt noteiktus paketus, piemēram, Apache Server (HTTP), MySQL, PHP un citas galvenās lietojumprogrammas, jo, ja šādi atjauninājumi var kaitēt pašreiz darbojošajām tīmekļa lietojumprogrammām serverī vai arī jūs varat apturēt atjauninājumus, līdz lietojumprogramma tiek ielāpīta ar jauniem atjauninājumiem.

Šajā rakstā mēs parādīsim, kā mēs varam izslēgt (atspējot) noteiktus pakotņu atjauninājumus, izmantojot YUMtool. Mēs varam izslēgt vai atspējot noteiktus pakotņu atjauninājumus no jebkuras trešās puses krātuvēm. Izslēgt sintaksi būtu šādi.

exclude=package package1 packages*

Iepriekš aprakstītajā sintaksē tiks izslēgti “pakete”, “pakete1” un “paketes” atjauninājumu vai instalēšanas saraksts. Katrs atslēgvārds jānošķir ar atstarpi pakešu izslēgšanai.

Kā izslēgt pakas YUM

Lai izslēgtu (atspējotu) konkrētus pakotņu atjauninājumus, pēc redaktora izvēles atveriet failu ar nosaukumu /etc/yum.conf.

# vi /etc/yum.conf

Pievienojiet šādu rindiņu faila apakšdaļā ar izslēgšanas atslēgvārdu, kā parādīts zemāk.

[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

Iepriekš minētajā piemērā rindas izslēgšana atspējos “httpd”, “php” un “mysql” pakotņu atjauninājumus. Mēģināsim instalēt vai atjaunināt vienu no tiem, izmantojot YUM komandu, kā parādīts zemāk.

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

Kā izslēgt pakas no EPEL Repo

Lai izslēgtu pakotņu instalācijas vai atjauninājumus no EPEL repozitorija, pēc tam atveriet failu ar nosaukumu /etc/yum.repos.d/epel.repo.

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

Pievienojiet izslēgšanas rindu, norādot paketes, kuras izslēgt no atjauninājumiem.

[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

Tagad mēģiniet atjaunināt iepriekš norādītos failus no EPEL krātuves, izmantojot komandu YUM.

# yum --enablerepo=epel update perl php python
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.hns.net.in
 * epel: ftp.kddilabs.jp
 * extras: mirrors.hns.net.in
 * updates: mirrors.hns.net.in
Setting up Update Process
No Packages marked for Update

Varat arī izmantot yum komandrindas opciju, lai izslēgtu paketi, nepievienojot repozitorija failiem.

# yum --exclude=httpd update

Lai izslēgtu pakotņu sarakstu, izmantojiet komandu šādi.

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

Tādā veidā jūs varat izslēgt visu nepieciešamo pakotņu atjauninājumus. Ir daudzi citi veidi, kā jūs varat darīt, piemēram, nesen mēs esam izveidojuši rakstu par 4 noderīgiem veidiem, kā bloķēt/atspējot vai bloķēt noteiktas paketes, izmantojot Linux komandu yum, jums tas jāizlasa šeit: