GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Conserver ou empêcher la mise à niveau d'un paquet dans Debian, Ubuntu

Comme vous le savez déjà, nous pouvons mettre à jour tous les packages installés en utilisant apt upgrade commande dans Debian, Ubuntu et d'autres systèmes basés sur Debian. Au cours de ce processus de mise à niveau, tous les packages installés seront mis à niveau, certains packages supplémentaires (c'est-à-dire des dépendances) seront installés et certains packages inutiles seront supprimés. Le gestionnaire de packages Apt fait toutes ces choses automatiquement pour aider les utilisateurs à maintenir un système propre. Apt a également une option pour empêcher l'installation, la mise à niveau ou la suppression automatique d'un paquet dans Debian, Ubuntu et ses variantes. Dans ce guide, nous discuterons de différentes méthodes pour bloquer ou empêcher la mise à niveau d'un paquet dans Debian, Ubuntu et ses dérivés tels que Linux Mint et Pop!_OS.

Pourquoi quelqu'un voudrait-il empêcher la mise à jour d'un package ?

Vous vous demandez peut-être pourquoi quelqu'un voudrait retenir un paquet d'apt upgrade. La mise à jour des packages vers la dernière version ne nous aide-t-elle pas à sécuriser le système ? Bien sûr que oui! Mais vous ne voulez pas faire cela dans certaines circonstances. Voici quelques raisons pour empêcher la mise à jour des packages :

  • Une version actuelle d'un package fonctionne correctement, vous pouvez donc penser qu'il n'est pas nécessaire de le mettre à niveau.
  • Une version particulière est requise par une autre application pour fonctionner correctement.
  • Le paquet que vous êtes sur le point de mettre à jour peut poser problème. Même si les développeurs testent minutieusement les packages avant de les placer dans les référentiels, ils peuvent parfois, sans le savoir, envoyer des packages instables qui cassent votre système.
  • Économie de bande passante. Vous ne voudrez peut-être pas mettre à jour un package qui consomme plus de 500 Mo.

Donc, quelle que soit la raison, si vous avez toujours voulu empêcher un paquet de changer dans les systèmes Debian ou Ubuntu, ce tutoriel vous aidera.

Retenir ou empêcher la mise à niveau d'un paquet dans Debian, Ubuntu

Nous pouvons empêcher/maintenir/ignorer/exclure les packages de la mise à niveau d'apt soit à partir de la ligne de commande, soit à l'aide d'un utilitaire graphique de gestion des packages appelé Synaptic gestionnaire de paquets.

Voyons d'abord les méthodes de la ligne de commande !

1. Empêcher l'installation, la mise à niveau ou la suppression automatique d'un paquet à l'aide de la commande apt-mark dans Debian, Ubuntu

Apt-marque est utilisé pour afficher, définir et désactiver divers paramètres pour un paquet, comme marquer un paquet comme étant automatiquement/manuellement installé ou changer dpkg sélections telles que maintenir, installer, désinstaller et purger qui sont respectées, par ex. par apt-get dselect-upgrade ou aptitude .

Pour empêcher un paquet de changer (installer, désinstaller et mettre à niveau), le apt-mark fournit les trois sous-commandes suivantes :

  1. maintenir
  2. reprendre
  3. exposition

Le hold La commande est utilisée pour marquer un package comme retenu, ce qui empêchera l'installation, la mise à niveau ou la suppression automatique du package.

Le unhold La commande est utilisée pour annuler une suspension précédemment définie sur un package afin d'autoriser à nouveau toutes les actions.

Et le showhold La commande est utilisée pour afficher une liste des packages en attente.

Voyons un exemple. Je vais empêcher un paquet (par exemple htop ) d'être automatiquement installé, mis à niveau ou supprimé à l'aide de la commande :

$ sudo apt-mark hold htop

Exemple de résultat :

htop set on hold.

Le htop verrouillé le package restera dans la même version même après la mise à niveau de votre système.

Pour afficher les packages en attente, exécutez :

$ sudo apt-mark showhold

Pour libérer le package, exécutez simplement :

$ sudo apt-mark unhold htop

Exemple de résultat :

Canceled hold on htop.

Veuillez noter que cette méthode n'empêchera pas la suppression manuelle du package . Vous pouvez toujours supprimer les packages verrouillés en utilisant apt-get remove <packagename> commande.

Cette méthode empêche uniquement l'installation, la mise à jour, la mise à niveau ou la suppression automatique de l'application lors de la mise à niveau du système. Détenir un paquet signifie en fait que vous dites au gestionnaire de paquets de conserver la version actuelle quoi qu'il arrive, même si une nouvelle version est disponible . Cette astuce peut être très utile tout en retenant les pilotes graphiques. C'est également utile si une version plus récente d'un programme en cours de fonctionnement tombe en panne après une mise à jour.

Chaque fois que vous essayez de mettre à jour le système à l'aide des commandes sudo apt-get update ou sudo apt-get upgrade , les packages marqués auront toujours la même version au moment où vous détenez le package.

Apt-mark n'est pas le seul utilitaire CLI à empêcher les modifications de packages dans Debian ou Ubuntu. Il existe deux autres façons de mettre un paquet en attente et de le reprendre plus tard à partir de la ligne de commande.

2. Empêcher la mise à niveau du paquet à l'aide de dpkg dans Debian, Ubuntu

Dpkg est l'utilitaire de ligne de commande pour installer, construire, supprimer et gérer les packages Debian.

Pour mettre un package, par exemple htop , en attente avec dpkg, lancez :

$ echo "htop hold" | sudo dpkg --set-selections

Vous pouvez afficher l'état du colis que vous avez mis en attente plus tôt, exécutez :

$ dpkg --get-selections | grep "htop"
htop						hold

Comme vous pouvez le voir, htop est mis en attente.

Pour afficher l'état de tous les packages, exécutez :

$ dpkg --get-selections

Pour détenir le colis, faites :

$ echo "htop install" | sudo dpkg --set-selections

3. Conserver un paquet de mise à niveau en utilisant aptitude dans Debian, Ubuntu

Aptitude est une interface textuelle pour le système de paquets Debian GNU/Linux. Il permet à l'utilisateur d'effectuer diverses tâches de gestion de packages telles que l'installation, la mise à jour, la mise à niveau, la liste et la suppression de packages.

Pour mettre un package en attente et empêcher sa mise à jour automatique, exécutez :

$ sudo aptitude hold htop

Pour afficher l'état du package, exécutez :

$ aptitude show htop

Exemple de résultat :

Package: htop                            
Version: 2.2.0-2build1
State: installed [held]
Automatically installed: no
Priority: optional
Section: utils
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 225 k
Depends: libc6 (>= 2.15), libncursesw6 (>= 6), libtinfo6 (>= 6)
Suggests: lsof, strace
Description: interactive processes viewer
 Htop is an ncursed-based process viewer similar to top, but it allows
 one to scroll the list vertically and horizontally to see all processes
 and their full command lines. 
 
 Tasks related to processes (killing, renicing) can be done without
 entering their PIDs.
Homepage: https://hisham.hm/htop/

Comme vous le voyez dans la sortie ci-dessus, le package htop est conservé depuis la mise à niveau.

Pour détenir le colis, faites simplement :

$ sudo aptitude unhold htop

4. Empêcher l'installation, la mise à niveau ou la suppression automatique d'un paquet à l'aide du gestionnaire de paquets Synaptic dans Debian, Ubuntu

Si vous avez Synaptique gestionnaire de packages installé sur votre système, vous pouvez facilement empêcher l'installation, la mise à jour, la mise à niveau ou la suppression d'un package.

Ouvrez le gestionnaire Synaptic et recherchez le package que vous souhaitez conserver. Cliquez ensuite sur Package dans la barre de menu et cliquez sur maintenir .

C'est ça. Désormais, le paquet ne sera pas touché pendant la mise à niveau du système tant que vous le garderez en attente.

Pour le débloquer, allez dans Synaptic -> Package -> Déverrouiller version.

Si le gestionnaire de paquets Synaptic n'est pas installé sur votre système, vous pouvez l'installer à l'aide de la commande :

$ sudo apt install synaptic

Conclusion

Dans ce didacticiel, vous avez appris comment empêcher l'installation, la mise à niveau et la suppression automatiques d'un paquet dans les systèmes basés sur Debian tels qu'Ubuntu, Linux Mint et Pop!_OS, etc. laisser des failles de sécurité dans votre système Ubuntu. Il faut savoir quand retenir ou retirer les colis. Utilisez cette fonction avec prudence. Bonne chance !

Lire connexe :

  • Comment ignorer la mise à niveau d'un package dans Arch Linux

Image sélectionnée par erfouris studio de Pixabay.


Ubuntu
  1. Comment désinstaller ou supprimer des packages logiciels d'Ubuntu

  2. Mise à niveau d'Ubuntu 13.10 vers Ubuntu 14.04

  3. Mise à niveau d'Ubuntu 13.04 vers Ubuntu 13.10

  4. Comment mettre à niveau vers Ubuntu 15.10 à partir d'Ubuntu 15.04

  5. Comment empêcher la mise à jour d'un paquet dans Ubuntu, Debian ou Linux Mint [APT]

Comment construire des paquets Debian à partir de la source

Comment mettre à niveau d'Ubuntu 20.04 vers Ubuntu 22.04

3 façons d'installer des logiciels à partir de packages .deb dans Ubuntu

Comment installer les packages Deb dans Ubuntu, Debian et Mint

Comment exclure des packages de la mise à niveau Apt-Get

Comment supprimer des packages d'Ubuntu et de Debian