I know that I can use apt-get remove <package>
to remove a program.
But apt
is a program itself. Could I use apt-get remove apt
to remove it, or would it get confused part way through?
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.
Sign up to join this communityAPT lets you simulate your commands using the option -s
. You can try this yourself, issuing the command apt-get -s remove apt
(no sudo
needed).
This yields the following output:
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]
So the answer should be: yes, you can.
sudo
(-s
mode doesn't make any changes), so it's probably better to run it without sudo
as a precaution.
Jan 18, 2016 at 0:17
You can...
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) ...
and will be warned you are about to do something very destructive. I must say ... the list of packages looks horrific for a space saving of less then 6000kb :D
It does finish but there is no way back using "apt-get". Ubuntu Software Center will no longer work and you would need to use "dpkg" to re-install a package manager (and manually also need to install all the dependencies).
sudo apt-get remember-what-2002-was-like
Jan 17, 2016 at 15:18
chroot
and apt-get
, much like Arch does?
apt-get
, installing in the new "root", but I forgot that you'd need all the config/cache files too. Your possible suggestion would certainly be cleaner though (if there is that option).
Once, back when I ran CoreUbuntu, I installed a buggy package from source which apt
decided obsoleted apt
. Next time I ran apt autoremove
, I didn't actually look at the list of software to be removed and apt
was in the list.
Imagine my surprise next time I typed apt install <package-name>
and got The program 'apt' is currently not installed. You can install it by typing: sudo apt-get install apt
.
Luckily, for some reason, autoremove
didn't remove any of apt
's dependencies so all I had to do was wget
apt
's .deb
archive and reinstall using dpkg -i
.
As shown in the other answers, if you remove apt
with apt
, you'll be in more trouble because of the dependencies it tries to resolve.
I find it interesting but it is indeed the case that (certainly for Debian, and perhaps Fedora/openSUSE to an extent?) many modern distros are defined and built largely upon the infrastructure provided by their package manager of choice.
apt
didn't remove the dependencies is that the buggy package you have installed listed them as required. Makes sense if that package was meant as a replacement.
Jan 18, 2016 at 16:35
Technically, apt can't remove apt... because apt doesn't know how to remove, install or upgrade packages. The tasks of installing, removing, upgrading, configuring packages are left to dpkg. Although you can tell apt to remove the package called "apt", what it does is checks the reverse dependencies of the apt package, take note of those packages and orders dpkg to remove them. Which is what can be seen in the other answers.
Even without apt you can use dpkg to install, remove or upgrade packages, just that it will be more painful to track dependencies and upgrades needed, which is the raison d'être of apt.
dpkg
, and if you remove dpkg
then is it really Ubuntu anymore?
/var/lib/dpkg/status
file. You can recover dpkg if you like too.
Of course you can. Apt and dpkg are themselves packages, and they are meant to be able to be updated via themselves, so there are provisions for removal; otherwise /var/lib/dpkg/info/dpkg.prerm
and /var/lib/dpkg/info/dpkg.postrm
would not have reason to exist :)
If you accidentally removed them in a way that left you without dpkg, you could still manually unpack the .deb archive for dpkg unless you also got rid of binutils, tar, gzip/bzip2.
--purge
on any packages involved with the apt toolchain could give you nasty problems, though; hard to tell what owns certain files in /var/lib/dpkg
. If /var/lib/dpkg/status
got deleted and there was no current backup, then yes, the package manager would be beyond repair on that system.
I swear I saw the apt
binaries under /usr/local/bin
on an Ubuntu-based system not long ago, but they're not there on my current Ubuntu MATE 15.04 system (they're in /usr/bin
with most of the other binaries). If it was in /usr/local/bin
then it probably wouldn't be possible to uninstall it with apt
because the files in /usr/local/bin
are supposed to be ignored by the package manager. I must admit that putting apt
(and dpkg
as well) under /usr/local/bin
would be a good idea.
A more interesting question is - what happens if you uninstall dpkg
? Sure enough, dpkg
is listed as a package by apt
, but I'm not going to try uninstalling it now (haven't got a virtual machine set up at the moment). Theoretically one could also uninstall it with dpkg
itself. I'm going to take an educated guess that the only way to re-install it would be to do so manually, then hope that it picks up the existing configuration files (so you don't have to manually tell the system all over again what packages are installed) and then tell it that the package dpkg
is now installed again.
(A joke:) A Debian user's equivalent of # rm -rf /
is # apt-get purge ".*"
.
# dnf remove dnf Dependencies resolved. Error: The operation would result in removing the following protected packages: dnf.