Puis-je supprimer apt avec apt?

44

Je sais que je peux utiliser apt-get remove <package> pour supprimer un programme.

Mais apt est un programme lui-même. Est-ce que je pourrais utiliser apt-get remove apt pour le supprimer, ou serait-il confus en cours de route?

    
posée Tim 17.01.2016 - 14:57
la source

6 réponses

77

APT vous permet de simuler vos commandes en utilisant l’option -s . Vous pouvez l'essayer vous-même en émettant la commande apt-get -s remove apt (pas de sudo requis).

Cela donne la sortie suivante:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apturl-common xul-ext-ubufox
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-properties-common software-properties-gtk ubuntu-desktop
  unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 9 to remove and 0 not upgraded.
Remv ubuntu-desktop [1.341]
Remv nautilus-share [0.7.3-1ubuntu5]
Remv apturl [0.5.2ubuntu9]
Remv software-properties-gtk [0.96.13.1]
Remv software-properties-common [0.96.13.1]
Remv python3-software-properties [0.96.13.1]
Remv unattended-upgrades [0.86.2ubuntu1]
Remv apt-utils [1.0.10.2ubuntu1]
Remv apt [1.0.10.2ubuntu1]

Donc, la réponse devrait être: oui, vous pouvez.

    
réponse donnée cauon 17.01.2016 - 15:13
la source
29

Vous pouvez ...

sudo apt-get remove apt
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-center software-properties-common software-properties-gtk
  ubuntu-desktop ubuntu-extras-keyring ubuntu-minimal unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.
After this operation, 9,031 kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
?] Yes, do as I say!
(Reading database ... 179817 files and directories currently installed.)
Removing ubuntu-desktop (1.327) ...
Removing nautilus-share (0.7.3-1ubuntu5) ...
Removing apturl (0.5.2ubuntu4) ...
dpkg: warning: while removing apturl, directory '/usr/lib/python3/dist-packages/AptUrl/gtk/backend' not empty so not removed
Removing software-properties-gtk (0.94) ...
dpkg: warning: while removing software-properties-gtk, directory '/usr/lib/python3/dist-packages/softwareproperties/gtk' not empty so not removed
Removing software-properties-common (0.94) ...
Removing python3-software-properties (0.94) ...
Removing unattended-upgrades (0.82.8) ...
Removing ubuntu-minimal (1.327) ...
Removing apt-utils (1.0.9.2ubuntu2) ...
Removing software-center (13.10-0ubuntu4.1) ...
Removing ubuntu-extras-keyring (2010.09.27) ...
OK
Removing apt (1.0.9.2ubuntu2) ...
Processing triggers for man-db (2.7.0.2-2) ...
Processing triggers for gconf2 (3.2.6-2ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for shared-mime-info (1.2-0ubuntu3) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu2) ...
Processing triggers for bamfdaemon (0.5.1+14.10.20140925-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.55ubuntu1) ...
Processing triggers for dbus (1.8.8-1ubuntu2) ...
Processing triggers for libc-bin (2.19-10ubuntu2) ...

et on vous avertira que vous êtes sur le point de faire quelque chose de très destructeur. Je dois dire que la liste des paquets semble horrible pour un gain de place inférieur à 6000kb: D

Il finit mais il n'y a pas moyen de revenir en arrière avec "apt-get". Ubuntu Software Center ne fonctionnera plus et vous devrez utiliser "dpkg" pour réinstaller un gestionnaire de paquets (et également installer manuellement toutes les dépendances).

    
réponse donnée Rinzwind 17.01.2016 - 15:10
la source
11

Une fois, lorsque j'ai couru CoreUbuntu, j'ai installé un paquet bogue à partir de source, ce que apt a jugé obsolète apt . La prochaine fois que j'ai exécuté apt autoremove , je n'ai pas regardé la liste des logiciels à supprimer et apt figurait dans la liste.

Imaginez ma surprise la prochaine fois que j'ai tapé apt install <package-name> et obtenu The program 'apt' is currently not installed. You can install it by typing: sudo apt-get install apt .

Heureusement, pour une raison quelconque, autoremove n'a supprimé aucune des dépendances de apt , alors tout ce que j'avais à faire était de wget apt ' .deb archive et de réinstaller avec dpkg -i .

Comme indiqué dans les autres réponses, si vous supprimez apt avec apt , vous aurez plus de problèmes à cause des dépendances qu’elle essaie de résoudre.

Je trouve cela intéressant mais il est vrai que (certainement pour Debian, et peut-être Fedora / openSUSE dans une certaine mesure?), de nombreuses distributions modernes sont définies et construites principalement sur l’infrastructure de leur gestionnaire de paquets choisi.

    
réponse donnée cat 17.01.2016 - 18:50
la source
5

Techniquement, apt ne peut pas supprimer apt ... car apt ne sait pas comment supprimer, installer ou mettre à jour des paquets. Les tâches d'installation, de suppression, de mise à niveau et de configuration des packages sont laissées à dpkg. Bien que vous puissiez dire à apt de supprimer le paquet appelé "apt", il vérifie les dépendances inverses du paquet apt, prend note de ces paquets et ordonne à dpkg de les supprimer. Que peut-on voir dans l'autre réponses .

Même sans apt, vous pouvez utiliser dpkg pour installer, supprimer ou mettre à jour des paquets, mais il sera plus difficile de suivre les dépendances et les mises à niveau nécessaires, ce qui est la raison d'être d'apt. / p>     

réponse donnée Braiam 19.01.2016 - 14:41
la source
1

Bien sûr que vous pouvez. Apt et dpkg sont eux-mêmes des packages, et ils sont conçus pour pouvoir être mis à jour via eux-mêmes. sinon /var/lib/dpkg/info/dpkg.prerm et /var/lib/dpkg/info/dpkg.postrm n'auraient pas de raison d'exister:)

Si vous les avez accidentellement supprimés d’une manière qui vous a laissé sans dpkg, vous pouvez toujours décompresser manuellement l’archive .deb pour dpkg à moins de vous débarrasser de binutils, tar, gzip / bzip2.

--purge sur tous les paquets impliqués dans la chaîne d'outils apt pourrait vous causer des problèmes désagréables; difficile de dire ce qui appartient à certains fichiers dans /var/lib/dpkg . Si /var/lib/dpkg/status a été supprimé et qu'il n'y a pas de sauvegarde en cours, alors oui, le gestionnaire de paquets ne pourra plus être réparé sur ce système.

    
réponse donnée rackandboneman 20.01.2016 - 12:00
la source
-1

Je jure que j'ai vu les binaires apt sous /usr/local/bin sur un système basé sur Ubuntu il y a peu, mais ils ne sont pas présents sur mon système actuel Ubuntu MATE 15.04 (ils sont en /usr/bin avec la plupart des les autres binaires). Si c'était dans /usr/local/bin , il ne serait probablement pas possible de le désinstaller avec apt car les fichiers dans /usr/local/bin sont supposés être ignorés par le gestionnaire de paquets. Je dois admettre que mettre apt (et dpkg aussi) sous /usr/local/bin serait une bonne idée.

Une question plus intéressante est: que se passe-t-il si vous désinstallez dpkg ? Bien sûr, dpkg est répertorié en tant que package par apt , mais je ne vais pas essayer de le désinstaller maintenant (aucune machine virtuelle n'a été configurée pour le moment). Théoriquement, on pourrait aussi le désinstaller avec dpkg lui-même. Je vais prendre une supposition éclairée que la seule façon de le réinstaller serait de le faire manuellement, puis espère qu'il récupère les fichiers de configuration existants (vous n'avez donc pas à relire manuellement le système). quels paquets sont installés) et puis lui dire que le package dpkg est maintenant installé à nouveau.

(Une blague :) L'équivalent d'un utilisateur Debian de # rm -rf / est # apt-get purge ".*" .

    
réponse donnée Micheal Johnson 19.01.2016 - 19:24
la source

Lire d'autres questions sur les étiquettes