Deb Installer for Dapper.

Michael Vogt michael.vogt at ubuntu.com
Sat Oct 15 15:36:32 CDT 2005


On Fri, Oct 14, 2005 at 02:28:20PM +0200, Josué Alcalde González wrote:
> Now, Breezy is out, it is time for ideas for dapper. I would like to
> have a talk about .deb installer.
> 
> I think using dpkg is not good because:
> - You must use the console
> - It could install broken packages.
> Gdeb solves first problem, but it uses dpkg. I decided to rewrite it
> whit a similar interface to Synaptic. I am a student and I only had
> developed Java applications and some C code, but I have been able to
> do an alpha using C++ and glade, checking Synaptic code, gdeb code and libapt. I use a lot of
> Synaptic code and it looks similar.
> http://developer.berlios.de/dbimage.php?id=2164

I like your idea a lot. I think that a better tool to install local
deb package is really needed. Initally I though that adding this
support directly into apt would be the way to go. I created a branch
for it (apt--local-install--0). But the disadvantage is that this
branch is a rather intrusive change and does not map very well into
apts internal structure.

[..]
> The problem is libapt doesn't support local packages installation, so
> Synaptic can't implement it easy.
> Debins uses a trick to make the job, a local repository. It could be a
> solution, but I think it is not very good solution to have a local
> repository. It could grow too much.
> So, I have been thinking and searching and I think, perhaps I have found
> a solution.
[..skip..]

I like this idea, but what do you think about going one step further?
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

-- 
Linux is not The Answer. Yes is the answer. Linux is The Question. - Neo



More information about the ubuntu-devel mailing list