GNU/Linux >> Tutoriels Linux >  >> Ubuntu

"sudo Apt-get Install Foo-" provoque la suppression du package Foo et tout ce qui en dépend ?

Cette question a déjà des réponses ici :apt-get install avec '-' (moins / trait d'union) supprime les packages

(2 réponses)
Fermé il y a 2 ans.

En travaillant dans l'invite de commande, j'ai accidentellement tapé la commande suivante :

sudo apt-get install python3-

et ubuntu a commencé à supprimer python3 et tout ce qui en dépend (y compris Firefox et bien plus encore). Heureusement, j'ai fermé ce terminal immédiatement et tout annulé en vérifiant dpkg log, mais je me demandais pourquoi une install la commande devrait agir comme supprimer ?

Est-ce un bogue ?

Considérez la situation dans laquelle vous recherchez un nom de package (en appuyant deux fois sur Tab) et en parcourant les possibilités en appuyant sur la touche Entrée et ces touches Entrée restent dans la mémoire tampon du clavier et…. youhaaaa… apt-get supprime toute l'installation sous vos yeux.

Réponse acceptée :

Je viens d'essayer ce signe moins (ou tiret) après un paquet et oui, apt-get agit comme remove .

Le plus drôle, c'est que je ne connaissais pas cette fonction de apt-get . Ce signe moins est valable pour chaque package . J'ai essayé avec smplayer- avec firefox- et agissant toujours comme remove .
Donc la seule chose que je peux penser est que le tiret à la fin d'un paquet considéré par apt-get comme un moins et install commande convertie en remove .

Si vous vouliez tout installer sur python3 , vous deviez ajouter un astérisque après ce signe tiret (moins)

sudo apt-get install python3-*

Au début, je pensais que c'était juste un problème de conflit, mais ce n'est pas le cas. Parfois, lorsque vous installez un package et que vous êtes en conflit avec un autre package, le package déjà installé sera supprimé en raison d'un nouveau package installé, mais ce n'est pas notre cas ici.

Nous avons appris quelque chose d'utile aujourd'hui.

À partir de la page de manuel de apt-get . Pour lire la page de manuel via votre terminal, donnez man apt-get

Si un trait d'union (-) est ajouté au nom du package (sans espace
intermédiaire), le package identifié sera supprimé s'il est actuellement
installé. De même, un signe plus (+) peut être utilisé pour désigner un
package à installer. Ces dernières fonctionnalités peuvent être utilisées pour annuler
les décisions prises par le système de résolution de conflits d'apt-get.

Finalement, ce n'est pas une nouvelle option ou quelque chose de bizarre, c'est juste que nous ne lisons pas attentivement les pages de manuel.

Connexe :ImportError :Pas de nom "_tkinter", veuillez installer le package python3-tk ?
Ubuntu
  1. Erreur Pkgproblemresolver lors de l'exécution du gestionnaire de packages et de la mise à jour 12.04 ?

  2. Comment exécuter un script uniquement lors de la première installation d'un package et non lors des mises à niveau ?

  3. Impossible d'installer Python-dev sur Ubuntu 16.04 Lts en utilisant Aptitude et Apt-get ?

  4. Utilisation de Sudo Apt-get Install, pourquoi pas de code source ?

  5. Comment installer Openssh-server, Tcsh, Autofs et Ypbind sur la version de bureau Ubuntu 14.04 ?

Comment installer Minecraft sur Ubuntu et Linux Mint

Comment accélérer les téléchargements et les mises à jour de packages avec apt-fast sur Ubuntu 20.04

Impossible d'installer et le code ne fonctionne pas :Apt-get Install Virtualbox-guest-x11 ?

Comment installer et gérer les packages RPM sur le système Ubuntu/Debian

impossible d'installer le paquet libc6

E :Impossible de localiser le package python-pip sur Ubuntu 18.04