GNU/Linux >> Tutoriels Linux >  >> Linux

4 façons de désactiver/verrouiller certaines mises à jour de packages à l'aide de la commande Yum

Gestionnaire de packages est un logiciel qui permet à un utilisateur en cas d'installation d'un nouveau logiciel, de mise à niveau du système ou de mise à jour de tout logiciel spécifique et ce genre de choses. Dans le cas de systèmes basés sur Linux dans lesquels un logiciel a de nombreuses dépendances qui doivent être présentes sur le système pour une installation complète de ce logiciel, un tel logiciel comme le gestionnaire de paquets devient un outil indispensable sur chaque système.

Chaque distribution Linux est livrée avec son gestionnaire de packages par défaut pour les fonctionnalités indiquées ci-dessus, mais parmi toutes celles que l'on trouve le plus sont :yum sur RHEL et Fedora systèmes (où il est actuellement remplacé par DNF de Fedora 22+ et suivants) et apt de Debian.

Si vous recherchez APT outil pour bloquer ou désactiver certaines mises à jour de packages spécifiques, alors vous devriez lire cet article.

Désactiver / verrouiller ou mettre à jour la liste noire du package Certian à l'aide d'APT

Dnf ou danifié yum remplace yum sur Fedora systèmes qui est un autre dans notre liste. S'ils sont explorés correctement, ces gestionnaires de packages peuvent être utilisés pour les fonctionnalités suivantes :

  1. Installation de nouveaux logiciels à partir du référentiel.
  2. Résolvez les dépendances du logiciel en installant ces dépendances avant d'installer le logiciel.
  3. Tenir à jour la base de données des dépendances de chaque logiciel.
  4. Rétrograder la version de tout logiciel existant.
  5. Mettre à jour la version du noyau.
  6. Liste des packages disponibles pour l'installation.

Nous avons déjà couvert des articles détaillés séparément sur chaque gestionnaire de packages avec des exemples pratiques, vous devez les lire pour contrôler et gérer la gestion des packages dans vos distributions Linux respectives.

Lire aussi :

  1. Maîtriser la commande Yum avec ces 20 exemples pratiques
  2. 27 commandes DNF pour gérer les packages dans les versions Fedora 22+
  3. Apprenez 25 commandes APT pour gérer les packages Ubuntu

Dans l'article, nous verrons comment verrouiller/désactiver certaines mises à jour de packages en utilisant le gestionnaire de paquets Yum dans les systèmes RHEL/CentOS et Fedora (applicable jusqu'à Fedora 21 , la version plus récente de Fedora est livrée avec dnf comme gestionnaire de paquets par défaut).

Désactiver/verrouiller les mises à jour de packages à l'aide de Yum

Mise à jour du chien jaune, modifié (miam ) est un outil de gestion de paquets dans les distributions basées sur RedHat telles que CentOS et Fedora. Diverses stratégies utilisées pour verrouiller/désactiver les mises à jour de packages à l'aide de Yum sont décrites ci-dessous :

1. Désactiver définitivement le package pour l'installation ou la mise à jour

1. Ouvrez et modifiez le yum.conf fichier, qui se trouve dans /etc/yum.conf ou dans /etc/yum/yum.conf .

Il ressemble à ci-dessous :

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

Ici, pour exclure certains packages de l'installation ou de la mise à niveau, il vous suffit d'ajouter une variable d'exclusion avec le nom du package que vous souhaitez exclure. Par exemple, si je veux exclure tous les python-3 paquets d'être mis à jour, alors j'ajouterai simplement la ligne suivante à yum.conf :

exclude=python-3*

Pour plus d'un package à exclure, séparez simplement leurs noms par un espace.

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

Remarque  :pour inclure ces packages, en ignorant les entrées dans yum.conf , utilisez "-disableexcludes ” et définissez-le sur all|main|repoid , où 'principal' sont ceux saisis dans yum.conf et 'repoid' sont ceux dont l'exclusion est spécifiée dans repos.d répertoire, comme expliqué plus loin.

Essayons maintenant d'installer ou de mettre à jour les packages spécifiés et voyons que la commande yum désactivera leur installation ou leur mise à jour.

# 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. Désactiver temporairement le package pour l'installation ou la mise à jour

2. Ci-dessus était une solution permanente pour exclure un package car à moins que le fichier ne soit modifié, ce package ne sera pas mis à jour. Voici une solution temporaire pour cela aussi. Juste au moment où vous allez pour une mise à jour, utilisez -x basculez dans la commande yum pour exclure le package que vous ne souhaitez pas mettre à jour, comme :

# yum -x python-3 update

La commande ci-dessus mettra à jour tous les packages dont les mises à jour sont disponibles, à l'exception de python-3 sur votre système.

Ici, pour exclure plusieurs packages, utilisez -x plusieurs fois, ou séparez les noms de paquet avec ',' en un seul commutateur.

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

3. Utiliser --exclude le commutateur fonctionne de la même manière que -x , il suffit de remplacer -x avec –exclure et passez ',' liste séparée des noms de packages.

# yum --exclude httpd,php

3. Désactiver les mises à jour de packages à l'aide du référentiel

4. Pour tout paquet installé à partir de n'importe quelle source externe via l'ajout d'un référentiel, il existe un autre moyen d'arrêter sa mise à niveau à l'avenir. Cela peut être fait en éditant son .repo fichier créé dans /etc/yum/repos.d/ ou /etc/yum.repos.d répertoire.

Ajoutez l'option d'exclusion avec le nom du package dans le dépôt . Comme :pour exclure n'importe quel paquet, dites vin de repo epel , ajoutez la ligne suivante dans epel.repo fichier :

[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

Essayez maintenant de mettre à jour le vin package, vous obtiendrez une erreur comme indiqué ci-dessous :

# 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. Désactiver la mise à jour du package à l'aide de l'option de verrouillage de version

5. Une autre façon dans yum de masquer la version de n'importe quel paquet le rendant ainsi indisponible pour la mise à jour, est d'utiliser versionlock option de yum, mais pour ce faire, vous devez yum-plugin-versionlock package installé sur le système.

# yum -y install yum-versionlock

Par exemple, pour verrouiller la version du package, dites httpd à 2.4.6 seulement, écrivez simplement la commande suivante en tant que root.

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

Pour afficher les packages verrouillés, utilisez la commande suivante pour répertorier les packages dont la version a été verrouillée.

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

Conclusion

Voici quelques conseils qui vous aideront à désactiver/verrouiller les mises à jour du package à l'aide du gestionnaire de packages yum. Si vous avez d'autres astuces pour faire les mêmes choses, vous pouvez les commenter avec nous.


Linux
  1. Comment désactiver le référentiel de packages YUM sur CentOS

  2. Comment désactiver/verrouiller ou mettre sur liste noire les mises à jour de packages à l'aide de l'outil Apt

  3. Utilisation des commandes Yum pour désactiver et supprimer les référentiels de packages sur CentOS

  4. Substitution de commande à l'aide de " ?

  5. Exemples de commandes YUM pour installer, supprimer et mettre à niveau des packages

Commandes YUM

Les 50 meilleurs exemples de commandes YUM pour les utilisateurs RHEL ou CentOS

4 façons de vérifier la version de CentOS dans la ligne de commande Linux

Utilisation de la commande Watch sous Linux

15 Exemples de commandes Linux Yum - Installer, désinstaller, mettre à jour des packages

Commande Yum - Utilitaire de gestion de packages basé sur RPM