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?
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.
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).
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.
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>
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.
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 ".*"
.