måndag 23 februari 2015

Linux - Should I use "apt-get remove" or "apt-get purge"?

If you have customized the package/software at all, either by editing the config files directly, or via a GUI, you may want to keep your customizations. Usually in Unix/Linux systems, configurations are saved in text files, even if the configuration/customization is done via the GUI.

Each Debian binary deb package has a list of files which it identifies as config files. dpkg, and thus apt honor this identification when removing packages, and also on upgrades. By default apt/dpkg will not remove config files on package removal. You have to request a purge. On upgrade it will ask you to choose between the current version and the new version (if they differ) before overwriting config files. Even in that case, it saves a copy of the original file. Here Debian is trying to help you, based on the assumption that your config files may contain valuable information.

So, if you have not configured the package, or you don't want to keep your configurations, you can use apt-get purge.

If you do keep the config files, then if/when you reinstall the package, Debian will attempt to reuse the saved configuration information. If the version of the package you are trying to (re)install has config files that conflict with the configuration files that are already installed, it will again ask you before overwriting, as it does on upgrade.

Minor comment: if you have removed the package and later want to remove the config files, you will need to call dpkg directly, because apt will not remove the config files if the package is no longer installed.

dpkg -P packagename

should remove the config files for you in that case.

Are these equivalent: apt-get remove --purge APP VS apt-get purge APP? –  mini Jul 26 '14 at 8:18
    
@mini: Yes. Quote from the apt-get man page, "remove --purge is equivalent to the purge command." –  Faheem Mitha Jul 26 '14 at 8:39

From the man page of apt-get:

   remove
        remove is identical to install except that packages are removed 
        instead of installed. Note that removing a package leaves its 
        configuration files on the system. If a plus sign is appended to the 
        package name (with no intervening space), the identified package 
        will be installed instead of removed.

   purge
        purge is identical to remove except that packages are removed and 
        purged (any configuration files are deleted too).

I would tend to use purge if you tend to not want to keep any configuration files around.

purge remove configuration files of your packages, but remove keep configuration files of your package.

But advantages or disadvantages: It's related to your system, your packages, your machine, install it or not, and so on.


Inga kommentarer: