13

I had to uninstall phpmyadmin from the production server and googled for it and used this:

sudo dpkg -P phpmyadmin

Well, this worked fine, but it seems everyone else on Ubuntu is using a purge instead

sudo apt-get purge phpmyadmin 

Have I done anything wrong? Any consequences I should be aware of (it is my production server after all) Are all bits of the phpmyadmin really uninstalled through dpkg -P?

1
  • From the man page of dpkg, it says "-P, --purge package", so -P stands for 'purge', so, as I think of it, it should be the same thing. I personally use 'apt-get purge'
    – hytromo
    Apr 30, 2012 at 8:55

1 Answer 1

7

dpkg and apt-get are 2 different ways of installing software. Basically apt-get, aptitude, and synaptic are built on top of debian's dpkg package management program. They all perform the same basic function - package management, but have some extra features. 1 of the extra features of apt-get is that it will install dependencies and dpkg does not.

Regarding the -p/purge ...

The -P in dpkg means --purge and will remove everything, including setttings and configuration files. From the manual:

-r, --remove, -P, --purge package...|-a|--pending

          Remove  an  installed  package. -r or --remove remove everything
          except conffiles. This may avoid having to reconfigure the pack‐
          age  if  it  is  reinstalled later. (Conffiles are configuration
          files that are listed in the DEBIAN/conffiles control file).  -P
          or  --purge  removes  everything,  including conffiles. If -a or
          --pending is given instead of a package name, then all  packages
          unpacked,   but   marked   to  be  removed  or  purged  in  file
          /var/lib/dpkg/status, are removed or purged, respectively. Note:
          some  configuration  files might be unknown to dpkg because they
          are created and handled  separately  through  the  configuration
          scripts. In that case, dpkg won't remove them by itself, but the
          package's postrm script (which is called by dpkg), has  to  take
          care of their removal during purge. Of course, this only applies
          to files in system directories, not configuration files  written
          to individual users' home directories.

          Removing of a package consists of the following steps:

          1. Run prerm script

          2. Remove the installed files

          3. Run postrm script

The same goes for purge in apt-get.

 remove
       remove is identical to install except that packages are removed
       instead of installed. Note the removing a package leaves its
       configuration files in 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).

Basically it is the same option. Mind you: removal of dependencies does not happen with dpkg. apt-get does remove dependencies

Documentation from comment by Lekensteyn:

5
  • +1 was about to write a similar answer. Documentation: debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html. The dependency thing should be highlighted. Example: removing php5 will also cause phpmyadmin to be removed (assuming there are no other PHP SAPIs). apt can handle this, dpkg cannot do it itself.
    – Lekensteyn
    Apr 30, 2012 at 9:04
  • Excellent lekensteyn. Was still looking in to (cuz the dependencies thingy was nagging me). Added it in :) Feel free to edit my answer if you have more :D
    – Rinzwind
    Apr 30, 2012 at 9:09
  • It's fine :) If someone hits the dependency issue after using dpkg directly, (s)he can correct it with sudo apt-get install -f (as suggested by dpkg)
    – Lekensteyn
    Apr 30, 2012 at 9:11
  • Thanks everyone for your advice. So do I do a sudo apt-get install -f phpmyadmin in my case to make sure the dependencies are deleted? What if the dependencies are shared?
    – Houman
    May 1, 2012 at 6:22
  • @Kave Dependencies not installed manually will be removed when no packages that are installed depend on them.
    – nanofarad
    Nov 14, 2012 at 20:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .