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'APTDnf 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 :
- Installation de nouveaux logiciels à partir du référentiel.
- Résolvez les dépendances du logiciel en installant ces dépendances avant d'installer le logiciel.
- Tenir à jour la base de données des dépendances de chaque logiciel.
- Rétrograder la version de tout logiciel existant.
- Mettre à jour la version du noyau.
- 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 :
- Maîtriser la commande Yum avec ces 20 exemples pratiques
- 27 commandes DNF pour gérer les packages dans les versions Fedora 22+
- 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.