Regarding RPM & DPKG usability

I would like to explain a bit more the 8th point I did on my SLED 10 rant. Here’s the general idea (which can work for both RPM and DPKG):

You create a website that looks like gnomefiles or versiontracker. It should look professional, well done, informative and not like this. You let third party packagers create packages for third party apps and you let them upload them. Upon receiving the RPM file, you check it: 1. With which versions of the OS this RPM would work 2. Does it conflict with other uploaded RPMs or the latest packages of the distributor’s updates. If all is good, you accept the RPM and let the packager fill up some generic information about the software. Then, the software goes live and people can visit its gloryfying web page via the bookrmark in the OS’ web browser. Now, when the user is trying to download the RPM it links to an rpm:// or dpkg:// URL instead. This is a special http type that it’s registered with the OS and its understood that this a package for installation. Immediately a software-installer GUI application comes up, downloads and installs the package for the user. Before it downloads the package, the GUI app checks with the website to see which are its deps and its requirements. If there are missing dependencies, the GUI app checks on the same website to find the extra packages needed and also checks with the OS’ own package database in the DVD (the listing is saved in the installed OS). If the deps are satisfied via extra packages it downloads them and installs them too. If not, then the GUI app bails out, but this should never happen because the website has already checked for these deps when the packager uploaded the RPM.

Additionally, the GUI app should have losen rules about dependencies by default (or its flag should be set per-RPM) so when you have a library that matches closely the required one (e.g. vs, it lets the package install without a fuss. It shouldn’t bail out just because the lib version is not 100% the same. This allows for many of these packages to be forward installable easier with future distro versions too. The distro must be extra careful to not break compatibility with third party packages for at least 1-2 years (and that’s too little already). Also, the distribution must enable by default on RPM’s creation utility to include the header files of the app that’s getting packaged (usually on an installation of 2.2 GB that’s only an extra 200 MBs of space — and that’s a small price to pay for not get any future headaches). Finally, non-Free software must be allowed to be uploaded in the web site too, simply because the target is to serve the users with tools that they can do their jobs with.

Basically, the idea is a bit like Linspire’s software store, but the workload is on the software community. THAT’S how you create a SOFTWARE PLATFORM and you have your users shut the hell up about “it’s difficult to install apps on linux”. All the distributor must do is create the said web site and engine. I would gladly donate my PHP code to any major distro that would like to implement this (they would only need to write the checking stuff).

The point is to not have “repositories”. At least not in any “user visible” way. The “repository” reality must be HIDDEN from the user. The user must not hunt down ways to find third party repositories and enable them manually and be in the mercy of badly-put-together packages. Neither in the mercy of something like Synaptic. People want to view a website and see what’s new, vote for an app, comment on an app, view screenshots of an app, view statistics of which apps are popular etc. An official web site for third party software with the right checks should deliver all that (plus the feeling of security) instead of using Synaptic and weird repository urls that the user must figure out by himself and trust random webmasters.

And regarding cleaning up the SuSE desktop of 4 different ways of updating the system and 2 more ways of installing new software: only two gui applications are required: 1. The GUI installer that loads when an RPM is clicked/loaded. 2. The uninstaller of RPMs. Regarding the software update daemon it should only run in the background and only flash in the gnome-panel when there are system updates or newer third-party RPM updates available and not a minute before. And when the user chooses to install them, the same GUI installer loads as in #1. A yet another app for “updates” will confuse your users and it is not needed. The daemon will “feed” the GUI installer with the latest updates and flash the gnome-panel, but the GUI installer would just think that it’s just installing some RPMs as it always does. For the user, that’s only two apps to learn how to use and not 6.

Only if the above is satisfied (and a few more things I described on my previous blog post) I would consider a DPKG/RPM distro in my desktops. Until then I will continue to use Arch Linux not because it’s user-friendly (it most certainly isn’t), but because it doesn’t try to be something that is not. It doesn’t try to compete with Windows or OSX, and it doesn’t go after the desktop market. I know what to expect from it and it works perfectly for the kind of functionality it has “promised” me. But when I use FC/SuSE or Ubuntu, I have higher expectations simply because these distros have put themeselves into this position, trying to compete for real-world people’s desktops. If they want to compete in that space, well, they have a lot more work to do than Arch or FreeBSD or Slackware do!

Post a comment »

Tom Dison wrote on July 20th, 2006 at 2:29 AM PST:

I like the Add/Remove program utility in Ubuntu. All packages are sorted into nice categories. If I pick a commercial non-free app, it automatically adds the repository for me. Tons of programs are available, including RealPlayer, Java, etc. It is also where you uninstall apps (just uncheck them). It does all the dependency checking. As for the update applet, it only shows when there is something to update – and the tooltip tells you how many programs are updated. Clicking the update brings up a friendly dialog that shows you the updates and lets you uncheck any you do not want. It also tells you what is updated. I don’t see how it could be easier. It’s easier than windows, and more powerful sincel ALL application receive updates. In addition, Ubuntu makes everything- all dialogs, notification messages (the XP-style message balloon for the update tray applet), etc. look very polished, clean and professional. I like that extra touch. Even if it is not true, it makes everything “feel” solid and reliable.

This is the admin speaking...
Eugenia wrote on July 20th, 2006 at 5:47 AM PST:

I do not agree that Ubuntu’s way is better than my idea. Ubuntu is still based upon the idea of repositories and for some of them the user must MANUALLY add or at least enable. NOTHING like this should be manual. This is like have to go to the Windows control panel and check some checkboxes before a user can install an app from the web. It is just not intuitive. Most people don’t care to go to ubuntuforums or read documentation just to be able to install an app.

And regarding all the features you mentioned, these are included in my idea too. The only difference is HOW you present that software collection to the user and HOW the system updates get delivered and tested towards the third party packages to ensure forward compatibility.

Tom Dison wrote on July 20th, 2006 at 7:07 AM PST:

I never has to enable any repositories. when I chose software such as Java or RealPlayer, the program just let me know it was adding a source to get this program. It was purely informative. It could have not told me, but I am glad it does that, just in case I change my mind – for instance, some people may not want commercial repositories added. I did not go to any dialog to add any repositories – it was all automatic as you said.

Tom Dison wrote on July 20th, 2006 at 7:24 AM PST:

BTW, I seriously agree with the package dependency problems. This is one reason I prefer debian-based systems. I’m not saying that apt is perfect, but in my experience it seems to do a better job of handling package dependencies than RPM. RPM seems to want an EXACT version of a program/library, while apt seems to want AT LEAST a certain version. I may be wrong, but that’s how it appears to me.

This is the admin speaking...
Eugenia wrote on July 20th, 2006 at 8:33 AM PST:

I just don’t like Synaptic. I like going to a web site, viewing a web page, view what people have to say about it, how it looks on screenshots, reading more about it, and then deciding to install or not. With Synaptic you only have a small description , gazillion of stupidly named repositories and such. I just don’t like this experience. While I want the system to take care of all the deps and installation as ubuntu currently does, I don’t like the pre-installation experience.

Tom Dison wrote on July 20th, 2006 at 9:00 AM PST:

I don’t like Synaptic either. It’s too cluttered, there are WAY too many packages available, and it just seems to have that ‘ugly as sin” feel about it. Unfortunately. there are still some times I have to use it. The above friendly Add/Remove Applications program I mentioned above is awesome, but sometimes I do still ahve to drop dwon to synaptic to get some things. The Add/Remove Applications program just shows things at the high-level, so it isn’t going to show something like libpng, gtk-devel, etc. Although, I must say Synaptic sure beats dselect!

Ludovic Hirlimann wrote on July 20th, 2006 at 12:03 PM PST:

Checking should try to find viruses and malware too. So it shouldn’t be too automatic, someone should approuve uploads.

Tom Dison wrote on July 21st, 2006 at 1:24 AM PST:

I definitely like ports – I use it under PC-BSD and OpenBSD. I do sometimes have things that just won’t install – I always had a terrible time with Java – but it was not often.

Ludovic Hirlimann wrote on July 21st, 2006 at 6:20 AM PST:

The package dependency problem comes from the gact that linux is not and OS it’s only a kernel so there is no real leadership on how distribution shoudl/will work. The dependency problem is *not* as present on OSes distributions like NetBSD or FreeBSD and when present its never Hell.

Thom Holwerda wrote on July 21st, 2006 at 11:31 AM PST:

It’s time someone ports the .pbi system over to Linux.
It allows for exactly that which Eugenia is asking for. Download, and run. All deps included in the package. All debs installed in the app dir.

Awesome stuff.

This is the admin speaking...
Eugenia wrote on July 21st, 2006 at 11:51 AM PST:

Actually I am not asking for all deps to be included in the same package. But this is not a terrible idea either. It adds to security/bug and filesize problems, but on the other hand its loading is trouble-free.

Comments are closed as this blog post is now archived.

Lines, paragraphs break automatically. HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

The URI to TrackBack this blog entry is this. And here is the RSS 2.0 for comments on this post.