3 votes

Puis-je installer un paquet multiverse, puis désactiver les sources non libres, et le laisser quand même se mettre à jour ?

J'ai installé un paquet depuis multiverse puis j'ai désactivé multiverse et restricted dans les sources apt (dans toutes les URL). Je les ai désactivés pour ne pas installer accidentellement de nouveaux packages ou dépendances non libres.

Quand j'ai exécuté apt update puis upgrade sur le paquet, apt indique qu'il est "déjà dans la version la plus récente". Mais je pense que je n'obtiendrai pas réellement de mises à jour pour ce paquet, n'est-ce pas ?

Y a-t-il un moyen d'obtenir des mises à jour uniquement pour les paquets installés tout en empêchant l'installation de nouveaux packages depuis restricted ou multiverse (sans devoir modifier les sources apt à chaque installation) ?

J'ai pensé à laisser multiverse activé sur focal-security et focal-updates, mais je pense que cela ne va probablement pas produire l'effet escompté.


Ma autre question un peu liée :
Je veux recevoir un avertissement lors de l'installation apt depuis certaines sources, comme restricted et multiverse

5voto

karel Points 97032

Un package installé ne continuera pas à recevoir automatiquement des mises à jour si vous désactivez la source de logiciels à partir de laquelle le package a été installé (par exemple en commentant la ligne de la source de logiciels dans vos sources de logiciels en la précédant d'un caractère #), cependant vous pouvez toujours mettre à niveau manuellement ce package en réactivant sa source de logiciels et en réinstallant le package, puis en désactivant à nouveau sa source de logiciels.

Lorsque vous réinstallez un package avec sudo apt reinstall _nom-du-package_, apt essaiera de localiser ce package dans vos sources de logiciels et d'installer la dernière version disponible de ce package. Lorsqu'un package est mis à niveau par sudo apt upgrade, il est également mis à niveau vers la dernière version disponible de ce package.

Les dépendances croisées entre les dépôts se produisent uniquement si vous ajoutez également les packages suggérés avec l'option --install-suggests lors de l'exécution d'une commande sudo apt install. Ubuntu n'installe que le package lui-même et ses packages recommandés par défaut. Vous recevrez un message d'erreur si vous essayez d'installer un package suggéré qui n'est pas disponible à partir des sources de logiciels de votre système.

Même si un package a été installé par apt, il existe des commandes qui indiquent à apt de traiter ce package comme un package installé manuellement, de sorte qu'il ne peut être ni automatiquement supprimé ni automatiquement mis à jour sans basculer une option en premier. sudo apt-mark manual _nom-du-package_ est utilisé pour marquer un package comme étant installé manuellement, ce qui empêchera le package d'être automatiquement supprimé s'il n'y a pas d'autres packages qui en dépendent. sudo apt mark hold _nom-du-package_ hold est utilisé pour marquer un package comme retenu, ce qui empêchera le package d'être automatiquement installé, mis à niveau ou supprimé. unhold est utilisé pour annuler un hold précédemment défini sur un package pour permettre à nouveau toutes les actions. apt reinstall --simulate _nom-du-package_ simule la réinstallation d'un package dont les résultats montreront si la réinstallation de ce package installera également de nouveaux packages ou dépendances qui peuvent inclure des packages non libres qui ne sont pas actuellement installés. Utilisez sudo apt-mark hold pour empêcher ces nouveaux packages indésirables d'être installés.

1voto

hobbs Points 1048

Désactiver la source ne fonctionnera pas (le système ne saura jamais qu'il existe des versions améliorées de votre paquet). Ce qui pourrait fonctionner (je ne l'ai pas testé moi-même pour ce cas d'utilisation) est d'utiliser des épingles APT. Laissez les sources activées et ajoutez quelque chose comme ce qui suit à /etc/apt/preferences:

Package: votre-paquet-préféré
Pin: release o=Ubuntu
Pin-Priority: 990

Package: *
Pin: release c=multiverse
Pin-Priority: -1

Package: *
Pin: release c=restricted
Pin-Priority: -1

Les deuxième et troisième blocs marquent tous les paquets de multiverse et de restricted comme "ne pas installer", et le premier bloc rétablit la priorité par défaut du paquet votre-paquet-préféré.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X