Hi everyone :)
After installing the emacs package and trying to remove it afterwards:
sudo apt remove --purge --autoremove emacs
It only removed that package and not the other dependencies installed with it (emacs-gtk, emacs-common…). I had to manually remove them one-by-one.
Isn’t that command supposed:
- remove package
- it’s configuration files
- remove unused packages automatically installed ?
What am I missing here?
Also after reading the Stupid things you’ve done that broke your Linux installation post, I read a lot of people messing up their debian system after using the above command… So I assume that’s not the correct way of doing things in Linux?
Some insight from experienced user would be great :)
It is a very typical way of doing things, you just have to read the output and make sure no important packages are in the list.
Your command should be working. It won’t remove manually installed dependencies but should take care of automatic ones. You can check an individual package with apt show and look at the APT-Manual-Installed field.
Hi thanks for your quick response !
I already checked with
apt show emacs
and the output clearly showsemacs-gtk
as depends on. And while installing the emacs package with:sudo apt-get install emacs
it installed a ~400Mo package and all dependencies.So why doesn’t
sudo apt remove --purge --autoremove emacs
removes everything ? I thought this command would be the exact opposite ofsudo apt install package-name
Ah, I can duplicate this behavior too. I think it is probably related to emacs being a metapackage. It does not include emacs itself but forces the install of emacs-gtk. In my mind removing the metapackage should allow you to autoremove dependencies, but people have broken their systems badly with this behavior so it may have been changed or it’s stuck behind some configuration option.
Removing emacs-gtk itself will work as you expect. You can also install emacs-nox for a cli-only one that is smaller.
Edit: there is a setting called APT::Never-MarkAuto-Sections that by default includes meta packages and I think is the cause of this.