Puis-je supprimer apt avec apt?

45

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

Mais aptest un programme lui-même. Pourrais-je l'utiliser apt-get remove aptpour l'enlever, ou est-ce que cela deviendrait confus en cours de route?

Tim
la source
2
Est-ce une question réelle ou juste une question hypothétique? Dans le cas 1: essayez-le. Sinon: je pense qu'il devrait être capable de se purger s'il ne tente pas de lancer l'un de ses composants après les avoir retirés. Les fichiers déjà ouverts peuvent être supprimés sans problème.
Byte Commander
@ByteCommander C'est les deux, mais je ne peux pas vraiment l'essayer pour le moment.
Tim
13
Vous pouvez mais vous ne devriez probablement pas . Linux demande rarement pourquoi son utilisateur veut se tirer une balle dans le pied, il suppose simplement que vous avez une bonne raison et vous permet de tirer sur la gâchette ...
Shadur
1
Pour être complet, le DNF de Fedoras ne vous laissera pas le faire. # dnf remove dnf Dependencies resolved. Error: The operation would result in removing the following protected packages: dnf.
Davidmh
Quelle question diaboliquement intéressante! La suite logique est la suivante: pouvez-vous vous en remettre, ou faut-il une réinstallation complète?
KlaymenDK

Réponses:

78

APT vous permet de simuler vos commandes en utilisant l'option -s. Vous pouvez essayer cela vous-même en lançant la commande apt-get -s remove apt(inutile sudo).

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.

Cauon
la source
8
Je ne suis pas sûr que le mode de simulation d'apt couvre toutes les retombées de ce type de problème. Ce serait sûrement un cas marginal que le code pourrait ou non traiter.
Sparhawk
12
Cela ne nécessite pas sudo(le -smode n'apporte aucune modification), il est donc probablement préférable de l'exécuter sans sudo précaution.
Faux Nom
3
Apt pourrait bien être en mesure de déterminer comment supprimer apt. Mais peut-il réellement le faire? Il est facile d’imaginer qu’il risque de supprimer un fichier dont il dépend ultérieurement, laissant ainsi l’installation dans un état incohérent.
user253751
1
@immibis Cela m'inquiéterait davantage de supprimer dpkg. Apt lui-même dit simplement à dpkg ce qu'il doit faire, dpkg est ce qui effectue réellement les (non) installations.
Random832
1
Donc, si apt indique à dpkg quoi faire, que se passe-t-il lorsque vous supprimez dpkg ... lol
SuperSluether
30

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 sera averti que vous êtes sur le point de faire quelque chose de très destructeur. Je dois dire que la liste des paquets a l'air horrible pour un gain de place de moins de 6000 Ko: D

Il se termine mais il n'y a pas moyen de revenir en utilisant "apt-get". Le Centre de logiciel Ubuntu ne fonctionnera plus et vous devrez utiliser "dpkg" pour réinstaller un gestionnaire de paquets (et vous devrez également installer manuellement toutes les dépendances).

Rinzwind
la source
12
aurait besoin d'utiliser "dpkg" pour ré-installer un gestionnaire de paquets (et manuellement également d'installer toutes les dépendances) , donc en d'autres termes,sudo apt-get remember-what-2002-was-like
user1717828
Ne pourriez - vous démarrer dans un Live CD, puis chrootet apt-get, tout comme le fait Arch?
Sparhawk
1
@Sparhawk Pas sûr de ce que vous visez; après avoir chrooté, vous êtes à la racine de votre système normal et vous recherchez apt-get-it, que vous avez supprimé. Je pense qu'apt-get (ou peut-être qu'il s'agit de dpkg) permet de spécifier un répertoire racine alternatif, mais je n'arrive pas à trouver rapidement comment vous pourriez le faire.
un CVn
Aucun des paquets qu'il supprime n'est particulièrement "effrayant" à l'exception de, bien sûr, apt lui-même.
Random832
@ MichaelKjörling Je pensais que vous pouviez exécuter le chemin manuel apt-get, en l'installant dans la nouvelle "racine", mais j'avais oublié que vous auriez également besoin de tous les fichiers de configuration / cache. Votre suggestion éventuelle serait certainement plus propre cependant (s’il existe cette option).
Sparhawk
12

Une fois, lorsque j’ai exécuté CoreUbuntu, j’ai installé un paquet buggy à partir de la source qui apta été rendu obsolète apt. La prochaine fois que j'ai couru apt autoremove, je n'ai pas consulté la liste des logiciels à supprimer et aptfigurait 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, autoremoven'a pas supprimé l' une des apt« dépendances de manière tout ce que je devais faire était wget aptl » .debarchive et réinstallent à l' aide dpkg -i.


Comme indiqué dans les autres réponses, si vous supprimez apt avec apt , vous aurez davantage de problèmes en raison des dépendances qu'il tente de résoudre.

Je trouve cela intéressant, mais c’est effectivement le cas (certainement pour Debian et peut-être Fedora / openSUSE dans une certaine mesure?) De nombreuses distributions modernes sont définies et construites en grande partie sur l’infrastructure fournie par le gestionnaire de paquets de leur choix.

chat
la source
5
Je parie que la raison aptpour laquelle les dépendances n’ont pas été supprimées est que le paquet buggy que vous avez installé les a répertoriées comme il se doit. Cela a du sens si ce paquet était destiné à remplacer.
Dmitry Grigoryev
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. Ce qui est ce qui peut être vu dans les autres réponses .

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

Braiam
la source
Ouais, apt est vraiment juste une interface plus simple dpkg, et si vous supprimez, dpkgest-ce vraiment Ubuntu?
chat le
@cat Je pense que ce sera toujours ... tant que vous ne purgez pas le package ou ne supprimez pas le /var/lib/dpkg/statusfichier. Vous pouvez récupérer dpkg si vous le souhaitez.
Braiam
1

Bien sûr vous pouvez. Apt et dpkg sont des packages eux-mêmes, et ils sont conçus pour pouvoir être mis à jour via eux-mêmes, il existe donc des dispositions pour la suppression; sinon /var/lib/dpkg/info/dpkg.prermet /var/lib/dpkg/info/dpkg.postrmn'aurait pas de raison d'exister :)

Si vous les supprimiez accidentellement d'une manière qui vous laissait sans dpkg, vous pouvez toujours décompresser manuellement l'archive .deb pour dpkg à moins que vous ne vous débarrassiez également de binutils, tar, gzip / bzip2.

--purgesur tous les paquets impliqués dans la chaîne d'outils apt pourrait vous donner des problèmes désagréables, cependant; difficile de dire à quoi appartiennent certains fichiers /var/lib/dpkg. S'il /var/lib/dpkg/statusétait supprimé et qu'il n'y avait pas de sauvegarde en cours, alors oui, le gestionnaire de paquets serait irréparable sur ce système.

rackandboneman
la source
-1

Je jure avoir vu les aptfichiers binaires sous /usr/local/binun système basé sur Ubuntu il n'y a pas si longtemps, mais ils ne le sont pas sur mon système actuel Ubuntu MATE 15.04 (ils sont compatibles /usr/binavec la plupart des autres fichiers binaires). S'il était /usr/local/bininséré, il ne serait probablement pas possible de le désinstaller, aptcar les fichiers qu'il contient /usr/local/binsont censés être ignorés par le gestionnaire de paquets. Je dois admettre que mettre apt(et dpkgaussi) sous /usr/local/binserait une bonne idée.

Une question plus intéressante est: que se passera-t-il si vous désinstallez dpkg? Bien sûr, dpkgest répertorié comme un paquet 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 dpkglui-même. Je suppose que le seul moyen de le réinstaller est de le faire manuellement, en espérant qu'il récupère les fichiers de configuration existants (pour que vous n'ayez pas à redire manuellement le système quels paquets sont installés) et ensuite lui dire que le paquet dpkgest maintenant installé à nouveau.


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

Micheal Johnson
la source
Si quelque chose provenant d'un paquet de distribution officiel aboutit dans / usr / local / bin, signalez un bogue contre ce paquet.
rackandboneman
La chose est que cela ne venait pas d'un paquet; il a été installé séparément du gestionnaire de paquets dans le seul but d'éviter les problèmes "apt-get remove apt" et "apt-get remove dpkg". Je pense que c’était en fait Linux Mint, que j’utilisais auparavant comme système principal.
Micheal Johnson