What do each of the details in dpkg -l mean?

I am having a hard time deciphering what is returned when I run the command dpkg -l vim and unable to locate a source that breaks it down.

For example what does it mean Desired=Unknown/Install/Remove/Purge/Hold

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  skype          2.1.0.81-1     Skype
un  vim            <none>         (no description available)

If I compare the lines I can see that the first column ii and un respectively. Does un refer to (U)nknow and (Not) and does ii refer to (I)nstall and (I)nst?

What do the other options mean? For example when it says Desired, what does that mean in comparison to Status? What relationship does Err? have?

What do Hold,Conf-files,unpacked, halF-conf, Half-inst, trig-aWait, Trig-pend, Reinst-required, (Status,Err: uppercase=bad) all refer to?


The first three lines are just a header explaining what the first three columns (the three characters under the + signs in row 5) are acronyms for.

You package Vim is shown as un, which means

  • Desired status: unknown
  • Actual status: not installed
  • Errors: blank (i.e. "none")

The other parts should be self-explanatory.

See man dpkq-query for a more complete listing of the format. See info dpkg for more information on the meaning of the different statuses.