4 módszer bizonyos csomagfrissítések letiltására/zárolására a Yum Command használatával
A Csomagkezelő olyan szoftver, amely lehetővé teszi a felhasználó számára, hogy új szoftvert telepítsen, frissítse a rendszert, vagy frissítsen egy adott szoftvert és hasonló dolgokat. Linux alapú rendszerek esetén, ahol egy szoftvernek sok függősége van, amelyeknek jelen kell lenniük a rendszeren a szoftver teljes telepítéséhez, az ilyen szoftverek, mint a csomagkezelő, minden rendszeren nagyon szükséges eszközzé válnak.
Minden Linux disztribúcióhoz hozzátartozik az alapértelmezett csomagkezelő a fent említett funkciókhoz, de ezek közül a leggyakrabban megtalálhatók a következők: yum RHEL és Fedora rendszereken (ahol jelenleg DNF váltja fel a Fedora 22+-tól) és apt a Debiantól.
Ha APT eszközt keres bizonyos csomagfrissítések blokkolására vagy letiltására, akkor olvassa el ezt a cikket.
A Dnf vagy a Danified yum a yum helyett a Fedora rendszereken, amely egy másik a listánkon. Ha megfelelően megvizsgáljuk, ezek a csomagkezelők a következő funkciókhoz használhatók:
- Új szoftver telepítése a tárolóból.
- Oldja fel a szoftver függőségeit a függőségek telepítésével a szoftver telepítése előtt.
- Az egyes szoftverek függőségi adatbázisának karbantartása.
- Bármely meglévő szoftver verziójának leváltása.
- A kernel verzió frissítése.
- Telepíthető csomagok listázása.
Az egyes csomagkezelőkről külön-külön már részletes cikkeket tárgyaltunk gyakorlati példákkal, ezeket el kell olvasnia a megfelelő Linux-disztribúciók csomagkezelésének vezérléséhez és kezeléséhez.
Olvassa el még:
- A Yum parancs elsajátítása ezzel a 20 gyakorlati példával
- 27 DNF-parancs a csomagok kezelésére a Fedora 22+ verzióiban
- Tanuljon meg 25 APT-parancsot az Ubuntu-csomagok kezelésére
A cikkben látni fogjuk, hogyan zárolhatunk/letilthatunk bizonyos csomagfrissítéseket a Yum csomagkezelő használatával RHEL/CentOS és Fedora rendszerekben (a Fedora 21-ig, később újabb Fedora verzióig érvényes) dnf alapértelmezett csomagkezelővel szállítjuk).
A csomagfrissítések letiltása/zárolása a Yum használatával
A Yellow dog Updater, Modified (yum) egy csomagkezelő eszköz RedHat alapú disztribúciókban, mint például a CentOS és a Fedora. A csomagfrissítések Yum használatával zárolására/letiltására használt különféle stratégiákat az alábbiakban tárgyaljuk:
1. A csomag végleges letiltása telepítéshez vagy frissítéshez
1. Nyissa meg és szerkessze a yum.conf
fájlt, amely az /etc/yum.conf vagy az /etc/ mappában található. yum/yum.conf.
Az alábbiak szerint néz ki:
[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
...
Itt, hogy kizárjon bizonyos csomagokat a telepítésből vagy a frissítésből, csak hozzá kell adnia az kizárási változót a kizárni kívánt csomag nevével együtt. Például, ha ki akarom zárni az összes python-3
csomag frissítését, akkor csak a következő sort fűzöm a yum.conf
fájlhoz:
exclude=python-3*
Ha egynél több csomagot szeretne kizárni, csak szóközzel válassza el a nevüket.
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]
...
Megjegyzés: ezeknek a csomagoknak a felvételéhez, figyelmen kívül hagyva a yum.conf
bejegyzéseit, használja a „-disableexcludes ” parancsot, és állítsa be all|main|repoid-ba, ahol a 'main' a yum.conf és 'repoid' fájlban megadott értékek. > azok, amelyek kizárása a repos.d könyvtárban van megadva, a későbbiekben ismertetettek szerint.
Most próbáljuk meg telepíteni vagy frissíteni a megadott csomagokat, és nézzük meg, hogy a yum parancs letiltja a telepítést vagy frissítést.
# 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. Ideiglenesen tiltsa le a csomagot telepítéshez vagy frissítéshez
2. A fenti egy állandó megoldás volt a csomagok kizárására, mivel ha a fájlt nem szerkesztik, a csomag nem frissül. Itt van egy ideiglenes megoldás erre is. Éppen akkor, amikor bármilyen frissítésre vágyik, használja a -x
kapcsolót a yum parancsban, hogy kizárja azokat a csomagokat, amelyeket nem szeretne frissíteni, például:
yum -x python-3 update
A fenti parancs frissíti az összes olyan csomagot, amelynek frissítései elérhetők, kivéve a python-3
-t a rendszeren.
Itt több csomag kizárásához használja többször a -x
billentyűt, vagy válassza el a csomagneveket a ','
karakterlánccal egyetlen kapcsolóban.
yum -x httpd -x php update
OR
yum -x httpd,php update
3. A --exclude
kapcsoló ugyanúgy működik, mint a -x, csak a -x kapcsolót ra kell cserélni. >–exclude és adja át neki a ','
elválasztott csomagnevek listáját.
yum --exclude httpd,php
3. Tiltsa le a csomagfrissítéseket a Repository használatával
4. Bármely külső forrásból lerakat hozzáadásával telepített csomag esetén van egy másik mód a frissítési fokozatok jövőbeni leállítására. Ezt a .repo
fájl szerkesztésével teheti meg, amely az /etc/yum/repos.d/ vagy az /etc/yum.repos.d< fájlban jön létre. könyvtárba.
Adja hozzá a kizárási lehetőséget a csomagnévvel a repo-ban. Tetszik: a wine csomag kizárásához az epel repoból, adja hozzá a következő sort az epel.repo
fájlhoz:
[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
Most próbálja meg frissíteni a bor csomagot, az alábbi hibaüzenetet kapja:
# 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. Tiltsa le a csomagfrissítést a verziózár opcióval
5. A yum egy másik módja annak, hogy elfedje a csomagok verzióját, így nem elérhető a frissítéshez, a yum versionlock
opciójának használata, de ehhez telepíteni kell a rendszerre a yum-plugin-versionlock csomagot.
yum -y install yum-versionlock
Például a csomag verziójának zárolásához, mondjuk csak a httpd-t 2.4.6-ra, csak írja ki a következő parancsot rootként.
yum versionlock add httpd
Minta kimenet
Loaded plugins: fastestmirror, langpacks, versionlock
Adding versionlock on: 0:httpd-2.4.6-40.el7.centos
versionlock added: 1
A zárolt csomagok megtekintéséhez használja a következő parancsot, amely felsorolja azokat a csomagokat, amelyek verziója zárolt.
yum versionlock list httpd
Minta kimenet
Loaded plugins: fastestmirror, langpacks, versionlock
0:httpd-2.4.6-40.el7.centos.*
versionlock list done
Következtetés
Íme néhány tipp, amelyek segítenek letiltani/zárolni a csomagfrissítéseket a yum csomagkezelő használatával. Ha van más trükkje is, amivel ugyanezt megteheti, kommentálhatja velünk.