Onemogočite nekatere posodobitve paketov z uporabo YUM v RHEL/CentOS/Fedora


YUM (Yellowdog Updater Modified) je odprtokodni privzeti sistem za upravljanje paketov za številne okuse Linuxa, kot so RHEL (Red Hat Enterprise Linux), CentOS (Community Enterprise Operacijski sistem) in Fedora. Uporablja se pripomoček YUM za namestitev, nadgradnjo, odstranjevanje paketov na osnovi rpm iz skladišč distribucije v sistemih.

Toda včasih ne želimo posodabljati nekaterih paketov, kot so strežnik Apache (HTTP), MySQL, PHP in druge večje aplikacije, kajti če lahko takšne posodobitve škodijo trenutno izvajani spletni aplikaciji na strežniku ali pa ustavite posodobitve, dokler se aplikacija ne popravi z novimi posodobitvami.

V tem članku vam bomo pokazali, kako lahko z YUMtool izključimo (onemogočimo) nekatere posodobitve paketov. Določene posodobitve paketov lahko izključimo ali onemogočimo iz drugih skladišč drugih ponudnikov. Sintaksa izključitve bi bila naslednja.

exclude=package package1 packages*

Zgornja sintaksa bo izključila "paket", "paket1" in seznam posodobitev ali namestitev "paketov". Vsaka ključna beseda mora biti ločena s prostorom za izključitev paketov.

Kako izključiti pakete v YUM

Če želite izključiti (onemogočiti) posodobitve določenih paketov, odprite datoteko z imenom /etc/yum.conf z izbiro urejevalnika.

# vi /etc/yum.conf

Na dnu datoteke dodajte naslednjo vrstico s ključno besedo »izključi«, kot je prikazano spodaj.

[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

V zgornjem primeru bo vrstica »izključi« onemogočila posodobitve paketov »httpd«, »php« in »mysql«. Poskusimo namestiti ali posodobiti enega od njih z ukazom YUM, kot je prikazano spodaj.

# 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

Kako izključiti pakete iz EPEL Repo

Če želite izključiti namestitve ali posodobitve paketov iz repozitorija EPEL, odprite datoteko z imenom /etc/yum.repos.d/epel.repo.

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

Dodajte vrstico za izključitev tako, da določite pakete, ki jih želite izključiti iz posodobitev.

[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

Zdaj poskusite posodobiti zgoraj določene datoteke iz repozitorija EPEL z ukazom 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

Za izključitev paketa lahko uporabite tudi možnost ukazne vrstice yum brez dodajanja datotek v repozitorij.

# yum --exclude=httpd update

Če želite seznam paketov izključiti, uporabite ukaz, kot sledi.

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

Na ta način lahko izključite posodobitve za vse pakete, ki jih želite. Obstaja veliko drugih načinov, na primer nedavno smo sestavili članek o 4 uporabnih načinih za blokiranje/onemogočanje ali zaklepanje nekaterih paketov z ukazom yum v Linuxu, preberite to tukaj: