|
|
Subscribe / Log in / New account

Simplifying application installation

By Jake Edge
September 8, 2010

As part of the discussion that is currently raging in the Fedora community about its target audience, specifically with regard to its update policy, Máirín Duffy came up with some user archetypes to put faces to the different kinds of users Fedora might target. But that much-commented-on blog posting also had a "bonus" section that pointed out how confusing the update interface can be for users who aren't technically savvy (i.e. "Caroline Casual-User"). She suggested one way that Fedora could potentially reduce the confusion and, as it turns out, Richard Hughes had already been working on a similar idea called app-install for the past few months. App-install could help alleviate much of the confusion that casual users have when faced with updates—no matter how many or few there are.

The problems that Duffy identified mostly centered around what gets presented to users in the PackageKit GUI. She has an annotated version of the interface that points out all of the confusing information that is displayed. Even folks who are relatively new to Linux, but have some amount of technical background, will probably find her notations to be somewhat silly ("A streamer? Are we having a party? With "G's"?" for GStreamer for example). But that is part of her point—there are many things that technical users quickly recognize and at least partially understand that will completely go over the heads of casual users.

One could argue that targeting these casual users does not make sense for Fedora—many do—but Duffy's vision is that Fedora should reduce the complexity to a "platform update", at least for some users. That update would contain all of the different pieces that might normally be distributed on a package-by-package basis. That way, a casual user sees just one update, presumably fairly infrequently, that encompasses all of the underlying package thrash that seems to occur frequently with Fedora.

As she readily admits in the posting, it may not be quite that simple. In fact, she identified three groups of packages ("base platform", "core desktop", and "applications") that could have bundled updates. Each of those bundles might have updates released on different schedules, and each would be rolled into the monthly platform update.

There are some other considerations as well, though, particularly security fixes. Security updates come rather frequently for Fedora and most distributions that keep up with upstream vulnerabilities. Her plan for those is a bit vague, but the central idea is to produce less churn, less frequently, so that system breakage (i.e. base platform and to a lesser extent core desktop) is rare. That would also help reduce one problem that casual users suffer from: they are forced to make decisions about updates based on long lists of strange package names with largely incomprehensible reasons for the update.

While app-install is not a complete solution to what Duffy is proposing, it is a step down that path. The basic idea is that casual users want "applications" rather than packages. Application is defined to only include programs that are shipped with desktop files and include an icon—probably exactly what less-technical users expect. In addition, the applications are listed by the name users are used to, rather than by a package name that can be different for each distribution (i.e. Firefox vs. mozilla-firefox)—and sometimes changes between releases of the same distribution.

It is not a coincidence that app-install seeks to standardize these names across distributions. It is specifically geared to be a cross-distribution tool and Fedora's Hughes was joined by two other distribution hackers, SUSE's Roderick Greening and Sebastian Heinlein of Ubuntu, to create the specification and tools. At its core, app-install is a data format that contains the information needed to display applications in friendlier, localized way. The data gets stored in a SQLite database file that can be distributed along with a tarball of the application icons.

[Install demo]

Hughes has created two demonstration applications, an installer and an updater, that use the app-install data. This allows applications to be listed with their icons and descriptions extracted from the desktop files. Version 2 of the app-install schema, which is currently under development, will add the ability to display application ratings and screen shots to help users have a better understanding of what the application is and does before installing it. It is a vision that is clearly influenced by things like the Android Market and Ubuntu Software Center.

[Update demo]

The app-install data is extracted from the desktop files of the applications, which, as the README file notes, has "nice translations gently massaged and QA'd by upstream". By extracting the data into a SQLite file, and pulling out just the icons needed, much less disk space is used while still providing icons and descriptions for all of the applications that a distribution ships. There are currently tools available to extract the needed metadata from Ubuntu and Fedora packages, and it should be fairly easy to add the ability to extract it from other distributions.

Hughes announced app-install in a fedora-devel posting on September 7 and there were immediate questions about the benefits to Fedora from a cross-distribution implementation. Hughes had a ready answer to that:

Fedora is *not* a big enough ecosystem to drive fully localized and feature rich user experiences. Working with other distros mean we can work as one big team and share the burden of translation, bug-fixes and writing new common code. I certainly don't want to write software for Fedora, but rather write software for Linux, and then write the small amount of Fedora interface code.

There were also questions about using Hughes's definition of an application, but the clear focus of the app-install project is for casual users: "If you know what an epoch is, it's probably not for you", he said in the announcement. But by the same token, PackageKit (and yum or apt-get) will continue to exist, "so panic not". The idea behind app-install should be seen as a potential broadening of the reach for distributions, so that they can attract more "consumer"-style users.

One could certainly imagine integrating some of Duffy's ideas into this framework, with an app-install-based installer possibly replacing the applications bundle she described, while adding functionality to support the core desktop and base platform bundles. It is far from clear that Fedora will adopt an update strategy along the lines that she described, but it is clear that there are likely to be changes to Fedora's update policies. The ideas described by Duffy, as well as Jon Masters and others, along with the code from the app-install folks may just find a place as part of those changes.

It would also seem likely that, unlike some other cross-distribution initiatives, the app-install code will actually be used in multiple places. Hughes notes that Heinlein is driving many of the changes in the Ubuntu Software Center, so that as app-install matures it will find its way into that code. One would guess that having Greening involved means that openSUSE is looking at using it as well.

Because it doesn't really change anything for existing users—they'll still have the tools they've always used—but adds a "simplicity layer" for new users, there should be relatively little resistance to the app-install idea. There is a burden for distributions to maintain the app-install data, but it's something that could be automated pretty easily. Since it arguably updates Linux into the world of "Apps", which is certainly a popular paradigm at the moment, its adoption by at least some consumer-oriented distributions is not terribly far-fetched.



to post comments

Simplifying application installation

Posted Sep 9, 2010 6:42 UTC (Thu) by glatzor (guest, #42416) [Link]

Actually app-install-data is about sharing infrastructure and formats. There isn't any effort to unifiy application names cross-distro-wise.

Just a small correction: I am focusing on aptdaemon, the package manager backend, of software-center. Michael Vogt (mvo) does a wonderful job on the technical side of software-center. So he deserves the credits.

Simplifying application installation

Posted Sep 9, 2010 8:23 UTC (Thu) by mjthayer (guest, #39183) [Link] (1 responses)

Is the idea here that app-install is layered over the packaging systems, so that you say you want Firefox and it translates that into an apt-get/yum/whatever command?

Simplifying application installation

Posted Sep 9, 2010 12:40 UTC (Thu) by BlueLightning (subscriber, #38978) [Link]

PackageKit already provides this abstraction; I think what's being discussed here is the creation and use of grouping metadata (again, something that PackageKit provides) to hide away the finer details that the average user doesn't need to see.

Simplifying application installation

Posted Sep 9, 2010 9:28 UTC (Thu) by fb (guest, #53265) [Link] (10 responses)

Remarkably laudable work.

I've guided my mother to search for software to install on her Ubuntu box, and she was often confused by all the "library related packages" present in some search results.

OTOH, my mother -who complained about the capricious nature of her computer when a hardware failure occurred 3 weeks ago, and calls Firefox "the internet"- never had any trouble updating software on Ubuntu. There is a update icon in the panel, saying that updates are available. If there is a list with weird names such as "gstreamer" she never bothered trying to come to terms with that. She just knows that the best way to do away with that is to click on the update button.

Simplifying application installation

Posted Sep 10, 2010 5:06 UTC (Fri) by omez (guest, #6904) [Link] (9 responses)

Why do end users even have an update button at all? It's a bit like signing off on individual network packet checksums, and just as useful. Updates should just happen. Most importantly, if there is no real update button, there can be no convincing fake update button.

Simplifying application installation

Posted Sep 10, 2010 17:39 UTC (Fri) by cry_regarder (subscriber, #50545) [Link] (8 responses)

Updates should not just happen. These days, an update is likely to cause serious unstability until the desktop is restarted. The user needs to schedule the update around their work requirements.

Simplifying application installation

Posted Sep 11, 2010 0:24 UTC (Sat) by giraffedata (guest, #1954) [Link] (3 responses)

Updates should not just happen. These days, an update is likely to cause serious unstability until the desktop is restarted.

No, updates should just happen, and they should not cause serious instability until the desktop is restarted. But I get that that's not easy to do.

In the meantime, fb's mother does not know how to schedule updates around her work requirements and the update button gives no guidance. It just says, "press me."

Simplifying application installation

Posted Sep 11, 2010 22:45 UTC (Sat) by dlang (guest, #313) [Link] (2 responses)

how do you deal with the case where you update files on disk and then an older version of an app that's running reads one of the new files?

it would be nice if everything had interfaces designed well enough that you could replace individual components of an app without having to upgrade the entire app, but the reality is that nobody does this.

Simplifying application installation

Posted Sep 12, 2010 1:20 UTC (Sun) by omez (guest, #6904) [Link] (1 responses)

The system should never be in the half-baked state that is commonly permitted. You simply avoid the case by moving all pending updates from temporary local storage to "production" simultaneously during a restart.

Simplifying application installation

Posted Sep 12, 2010 2:56 UTC (Sun) by giraffedata (guest, #1954) [Link]

Another version of the same thing that I've seen a bunch of times is: always keep two copies of the system (sometimes they're copy-on-write copies for efficiency): Current and Next. Build up Next until it looks complete, then when convenient simultaneously switch Next to Current and Current to Previous and restart. If for any reason the system doesn't work, you can just switch back.

I don't know how applicable that is to Ubuntu, but that's what I meant when I said it isn't easy to make updates work the way they should -- automatically.

My (non-Linux) pocket computer gets updated all the time, and the most involved I ever got was once when it asked my permission to do a power cycle. And I have complete confidence in these updates.

Simplifying application installation

Posted Sep 11, 2010 2:40 UTC (Sat) by omez (guest, #6904) [Link]

On the fly updates have always been a source of fireworks and amusement.

To your point and others, a sane update system:
- Does not befuddle the user with jibberish about libbonobo
- Does not require weekly clicking about and hand-holding
- Does not unilaterally evicerate the desktop state with an automatic restart
- Does not leave the system running partially updated
- Informs the user that updates are pending. I've a notice here, "A restart is required."
- Optionally supplies copious amounts of quality meditation data for the gurus

Simplifying application installation

Posted Sep 14, 2010 1:30 UTC (Tue) by cortana (subscriber, #24596) [Link] (2 responses)

This is a failure of the desktop developers. Yes, if your app uses dbus, I'm talking to you.

Windows and Linux have basically swapped positions WRT needing to restart after an update. This is a shame.

Simplifying application installation

Posted Sep 14, 2010 3:50 UTC (Tue) by dlang (guest, #313) [Link] (1 responses)

I wouldn't say it's that bad, most things can be upgraded without disturbing the user.

unfortunantly one of the big ones that can't is firefox, and worse, it has hundreds of files that it reads at various times to do different things, and if some of those get updated without firefox restarting you can run into very strange behavior.

Simplifying application installation

Posted Sep 14, 2010 9:05 UTC (Tue) by cortana (subscriber, #24596) [Link]

Most things can--but that really isn't good enough. When the core piece of software that all programs seem to rely on these days for IPC is upgraded--dbus--your desktop is going down. And I don't mean "when you decide that it is convenient to reboot". I mean "half the programs on your desktop are going to crash, and the other half are going to lock up".

If I sound exasperated with the issue it's because I am--I have filed bug reports against apps that fail to handle the dbus server restarting underneath them, and basically been told 'bugger off, we don't care'. :(

openSUSE

Posted Sep 9, 2010 10:42 UTC (Thu) by mvidner (guest, #40070) [Link]

As far as I can tell, Roderick is not involved with openSUSE, but with (K)Ubuntu. (It seems Richard got it wrong)

Simplifying application installation

Posted Sep 9, 2010 14:28 UTC (Thu) by Tet (guest, #5433) [Link] (1 responses)

I've read the article, and I still have no idea what app-install is, or what it does. Ho hum. I guess it's not for me...

Simplifying application installation

Posted Sep 11, 2010 0:18 UTC (Sat) by giraffedata (guest, #1954) [Link]

I've read the article, and I still have no idea what app-install is, or what it does.

Yes, it's like a in-flight magazine ad for a technology product -- tells you what it's for, not what it is.

Me, I don't have a chance of knowing what app-install is because I also don't know what Fedora's "update interface" is or what the "PackageKit GUI" is. I suppose if I were a Fedora user, I would.

Simplifying application installation

Posted Sep 16, 2010 7:54 UTC (Thu) by ketilmalde (guest, #18719) [Link]

Am I the only one who don't get it? A new initiative to simplify software upgrades? Is there any actual data (rather than conjecture) supporting that users have problems with the current approach?

Currently, (Ubuntu) displays a big red icon in the panel when there are available updates. Clicking on it will take you to the software update manger, which will inform you that there are software updates available, separating them into two sections, security-critical and recommended.

Agreed, you will see the list of packages that need to be updated. Yes, even if you're fairly tech savvy, you're probably not going to know off-hand what each of them do - perhaps not even after reading the brief description helpfully included under each one. I just click to update anyway, since I trust the judgement of the distribution's packager (otherwise, I wouldn't be using the distribution, would I?).

But, Caroline Casual-user is going to look at this list of security critical and recommended updates, and decide *not* to upgrade, just because she doesn't know what GStreamer is or does. If so, might not the solution be a big window containing only "Push this button [GO]".

Well, I don't buy it. Anybody using a computer is used to seeing information they don't quite understand. If software updates really is a problem, let's work on making the information more accessible (i.e. self-explanatory), not less (replaced by drool-proof interfaces).

Simplifying application installation

Posted Sep 16, 2010 12:27 UTC (Thu) by linuxrocks123 (subscriber, #34648) [Link]

I think the fundamental problem, which was pointed out, is that people want their favorite application to be updated *RIGHT* *NOW*, but want the rest of the system to be stable. A naive solution to this would be to have a way to mark certain applications, "update immediately", and then pull the latest versions from experimental or whatever. This doesn't work as it should because of library dependencies.

So then you can have it pull the library dependencies as well, but then everything depending on the old library version's behavior gets broken and also needs updating, and it ends up setting off a chain reaction. This is why some distros, like Gentoo, just say "screw it" and update everything to the latest version all the time.

What we maybe could do is have the package manager automatically keep multiple library versions around when a "forced current" package is used and needs the new versions. This may or may not be worth the effort -- I'm not too sure how it would work.

---linuxrocks123


Copyright © 2010, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds