DebInstaller
The Problem
Currently, there's no easy way to install packages that have been downloaded from the web. The only way to install no-repository packages is dpkg -i with manual dependency resolution. This is not very userfriendly and does not encourage 3rd party development for Ubuntu.
The Solution
Michael Vogt has hacked together a prototype called Gdebi
My idea would be to inspect the deb file and extract the control information and parse the Depends/PreDepends/Conflicts line. Now use libapt to figure if these dependencies can be satified and if so, install them. Then dpkg -i is called. This way it will never produce a broken cache but still make install local debs easy and painless (with information how many additonal packages needs to be installed). And no need to modify apt/synaptic/sources.list.
To test if that works I hacked a prototype in python-apt/python-gtk that will examine the deb file and check if it can satisfy the dependencies. If so, it will tell how many additonal dependencies needs to be installed first. It requires small modifications in python-apt and vte (to have a nice progress bar when installing the packages). The prototype is at http://people.ubuntu.com/~mvo/bzr/gdebi--main/ (as a bzr archive).
I put some screenshots of the prototype at: http://people.ubuntu.com/~mvo/gdebi-1.png http://people.ubuntu.com/~mvo/gdebi-2.png http://people.ubuntu.com/~mvo/gdebi-3.png
I wonder if it might even be feasible to add some additonal safety checks like testing if the deb contains files already on disk and warn about that.
Cheers,
- Michael