Website-Suche

4 Möglichkeiten zum Deaktivieren/Sperren bestimmter Paketaktualisierungen mit dem Yum-Befehl


Package Manager ist eine Software, die einem Benutzer die Installation neuer Software, die Aktualisierung des Systems oder die Aktualisierung bestimmter Software usw. ermöglicht. Bei Linux-basierten Systemen, bei denen eine Software viele Abhängigkeiten aufweist, die für eine vollständige Installation dieser Software auf dem System vorhanden sein müssen, werden Software wie der Paketmanager zu einem dringend benötigten Werkzeug auf jedem System.

Jede Linux-Distribution wird mit ihrem Standard-Paketmanager für die oben genannten Funktionalitäten ausgeliefert, aber die am häufigsten vorkommenden sind: yum auf RHEL- und Fedora-Systemen (wo es derzeit ab Fedora 22 durch DNF ersetzt wird) und apt von Debian.

Wenn Sie nach einem APT-Tool suchen, mit dem Sie bestimmte Paketaktualisierungen blockieren oder deaktivieren können, sollten Sie diesen Artikel lesen.

Dnf oder Danified yum ersetzt yum auf Fedora-Systemen, einem weiteren in unserer Liste. Bei richtiger Erkundung können diese Paketmanager für die folgenden Funktionen verwendet werden:

  1. Neue Software aus dem Repository installieren.
  2. Lösen Sie Abhängigkeiten der Software auf, indem Sie diese Abhängigkeiten vor der Installation der Software installieren.
  3. Pflege einer Datenbank mit Abhängigkeiten jeder Software.
  4. Downgrade-Version einer vorhandenen Software.
  5. Aktualisieren der Kernel-Version.
  6. Auflistung der zur Installation verfügbaren Pakete.

Wir haben bereits ausführliche Artikel zu den einzelnen Paketmanagern mit praktischen Beispielen separat behandelt. Sie sollten diese unbedingt lesen, um die Paketverwaltung in Ihren jeweiligen Linux-Distributionen zu steuern und zu verwalten.

Lesen Sie auch:

  1. Beherrschen Sie Yum Command mit diesen 20 praktischen Beispielen
  2. 27 DNF-Befehle zum Verwalten von Paketen in Fedora 22+-Versionen
  3. Lernen Sie 25 APT-Befehle zum Verwalten von Ubuntu-Paketen

In dem Artikel erfahren Sie, wie Sie mit dem Yum-Paketmanager in RHEL/CentOS- und Fedora-Systemen bestimmte Paketaktualisierungen sperren/deaktivieren (anwendbar bis Fedora 21, später neuere Fedora-Version). wird mit dnf als Standardpaketmanager geliefert).

Deaktivieren/Sperren von Paketaktualisierungen mit Yum

Yellow Dog Updater, Modified (yum) ist ein Paketverwaltungstool in RedHat-basierten Distributionen wie CentOS und Fedora. Im Folgenden werden verschiedene Strategien zum Sperren/Deaktivieren von Paketaktualisierungen mit Yum erläutert:

1. Deaktivieren Sie das Paket dauerhaft für die Installation oder Aktualisierung

1. Öffnen und bearbeiten Sie die Datei yum.conf, die sich in /etc/yum.conf oder in /etc/ befindet. yum/yum.conf.

Es sieht wie folgt aus:

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

Um hier ein bestimmtes Paket von der Installation oder Aktualisierung auszuschließen, müssen Sie lediglich die Ausschlussvariable zusammen mit dem Namen des Pakets hinzufügen, das Sie ausschließen möchten. Wenn ich beispielsweise alle python-3-Pakete von der Aktualisierung ausschließen möchte, hänge ich einfach die folgende Zeile an yum.conf an:

exclude=python-3*

Um mehr als ein Paket auszuschließen, trennen Sie einfach deren Namen durch Leerzeichen.

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

Hinweis: Um diese Pakete einzuschließen und Einträge in yum.conf zu ignorieren, verwenden Sie „-disableexcludes“ und legen Sie fest es zu all|main|repoid, wobei 'main' diejenigen sind, die in yum.conf und 'repoid' eingegeben wurden > sind diejenigen, deren Ausschluss im Verzeichnis repos.d angegeben ist, wie später erläutert wird.

Versuchen wir nun, die angegebenen Pakete zu installieren oder zu aktualisieren und sehen, dass der Befehl yum die Installation oder Aktualisierung dieser Pakete deaktiviert.

# 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. Deaktivieren Sie das Paket vorübergehend für die Installation oder Aktualisierung

2. Oben war eine dauerhafte Lösung zum Ausschließen eines Pakets, da dieses Paket nicht aktualisiert wird, wenn die Datei nicht bearbeitet wird. Auch hierfür gibt es hier eine Übergangslösung. Wenn Sie sich für ein Update entscheiden, verwenden Sie den Schalter -x im Befehl yum, um Pakete auszuschließen, die Sie nicht aktualisieren möchten, wie zum Beispiel:

yum -x python-3 update

Der obige Befehl aktualisiert alle Pakete, deren Updates verfügbar sind, mit Ausnahme von python-3 auf Ihrem System.

Um mehrere Pakete auszuschließen, verwenden Sie hier mehrmals -x oder trennen Sie Paketnamen mit ',' in einem einzigen Schalter.

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

3. Die Verwendung des Schalters --exclude funktioniert genauso wie -x, Sie müssen lediglich -x durch –exclude und übergeben Sie eine durch ',' getrennte Liste von Paketnamen.

yum --exclude httpd,php

3. Deaktivieren Sie Paketaktualisierungen mithilfe des Repositorys

4. Für jedes Paket, das von einer externen Quelle durch Hinzufügen eines Repositorys installiert wird, gibt es eine andere Möglichkeit, dessen Aktualisierung in Zukunft zu stoppen. Dies kann durch Bearbeiten der Datei .repo erfolgen, die in /etc/yum/repos.d/ oder /etc/yum.repos.d< erstellt wird Verzeichnis.

Fügen Sie die Ausschlussoption mit dem Paketnamen im Repository hinzu. Zum Beispiel: Um ein beliebiges Paket, beispielsweise wine, aus dem epel repo auszuschließen, fügen Sie die folgende Zeile in die Datei epel.repo ein:

[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

Versuchen Sie nun, das Wine-Paket zu aktualisieren. Sie erhalten eine Fehlermeldung wie unten gezeigt:

# 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. Deaktivieren Sie die Paketaktualisierung mithilfe der Versionssperroption

5. Eine andere Möglichkeit in yum, die Version eines Pakets zu maskieren und es so für eine Aktualisierung nicht verfügbar zu machen, ist die Verwendung der Option versionlock von yum, aber um dies zu tun, müssen Sie Das Paket yum-plugin-versionlock muss auf dem System installiert sein.

yum -y install yum-versionlock

Um beispielsweise die Version des Pakets httpd nur auf 2.4.6 zu sperren, schreiben Sie einfach den folgenden Befehl als Root.

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

Um gesperrte Pakete anzuzeigen, verwenden Sie den folgenden Befehl. Dadurch werden die Pakete aufgelistet, deren Version gesperrt wurde.

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

Abschluss

Dies sind ein paar Tipps, die Ihnen dabei helfen, Paketaktualisierungen mit dem Yum-Paketmanager zu deaktivieren/sperren. Wenn Sie weitere Tricks haben, um die gleichen Dinge zu tun, können Sie diese bei uns kommentieren.