libapt-pkg dpkg is a low-level way of dealing with packages; for non-trivial tasks more intelligence is required. This is provided by the apt library, which gives us: high-level logic for dealing with package relations can handle complex installations and upgrades database with lists of available packages ability to download packages if needed