PDA

View Full Version : [IDEA] installing deb packages through nautilus


eMamo
October 13th, 2005, 04:19 PM
hi
today the only way you can install a deb package the command line, like this:
dpkg --install package.deb
so i have an idea of installing a deb packages through nautilus like that:
right click on a deb package > install option > entering the root password > installing the package.

so what do you think?:D

Ampersand
October 13th, 2005, 04:51 PM
There's also a package available (gdeb) which allows you to install packages.

idn
October 13th, 2005, 07:50 PM
I remember this got talked about alot a while ago, I think it would be really good to have an Ubuntu .deb installer that ties in with synaptic

josuealcalde
October 13th, 2005, 08:12 PM
I have sent this to ubuntu-devel:

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 examples, but I have been able to do an alpha 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

This would be useful, but the problem is how to install local deb packages. There have been a lot of threads about this in the forum and even in the wiki. https://wiki.ubuntu.com/PackageManagement

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 grown too much.
So, I have been thinking and searching and I think, perhaps I have found a solution.

DebViewer:
01. When you click a /file/to/install/name.deb DebViewer is started.
02. User checks package description (and other details if he wants).
03. If he decided to install it, it is warn: "THIS SOFTWARE IS NOT SUPPORTED, BLA, BLA, BLA... "
04. If he is brave enough, he will click yes and DebViewer will call "gksudo DebInstaller /file/to/install/name.deb"

DebInstaller:
01. Locks apt database
02. DebInstaller gets info from control file and build a new file like this:

Package: name
Version: 0.0-0
Priority: optional
Section: thesection
Maintainer: me <me@me.me>
Depends: libinstall1.0-0 (>= 1.9.0)
Architecture: i386
Filename: name.deb
Size: 100
Installed-Size: 150
MD5sum: 44f9abee24f7fc2d32adfe003bbde14d
Description: Dock any program into system tray
With AllTray you can dock any application with no native tray icon
into the system tray. A high-light feature is that a click on the "close" button
will minimize back to system tray. It works well with Gnome, KDE, XFCE 4*,
Fluxbox* and WindowMaker*
*no drag 'n drop support.

It must calc MD5sum (I don't know about what) and size. Other things are taken from control
This file will be saved as"/var/lib/apt/lists/_file_to_install_Packages"
2. Add to "/etc/apt/sources.list": "deb file:///file/to/install/ /"
3. Unlock apt-database
4. Now, we can install the package using apt, aptitude or synaptic! Not need to do an "apt-get update".
We could use synaptic using something like this (you should correct me):
"/usr/sbin/synaptic --hide-main-window --non-interactive --set-selections name"
It will install the package and:
- if a newer version is available in repositories, it will use it.
- if dependencies aren't solved, the package isn't installed.
Synaptic will do the job and end.
5. Lock apt-database.
6. Delete from /etc/apt/sources.list "deb file:///file/to/install/ /"
7.Delete file "/var/lib/apt/lists/_file_to_install_Packages"
8. Unlock apt-database and that's alll.

It works. I have installed opera to try this way to install deb packages. It is complex, but easy to do. No need to make any changes in apt or synaptic. No need to make a local repository. No need to copy the file to another place. If you want to uninstall the package, Synaptic->Installed (local or obsolet)

Some posible problems if something fails:
1. "_file_to_install_Packages" is created but line in sources.list is not added. (
No errors are generated by apt and the file will be deleted when "apt-get update"
2. "sources.list" line is not deleted. There will be an error and user should delete this from sources.list (or using gnome-software-properties). Perhaps, we could add someting like "#$$DELETE$ME$$" to the line, and we could delete it automatically when gnome-software-properties starts, or when an "apt-get update" is done.
3. Sometimes you need to install more than one package at once... it could be easy done for DebInstaller, but how should the gui to do these?

Well. What do you think about this?

dolson
October 14th, 2005, 11:20 PM
There's also a package available (gdeb) which allows you to install packages.

gdeb doesn't work. I click install, and the terminal never pops up. Also, gnome-apt wouldn't start. I had opened a bug report for both in one (because there was no separate option for gdeb), but only the gnome-apt bug was fixed.

If you know how to make gdeb work, tell me.

I wish [a working] gdeb was a default part of Ubuntu.