Simplifying application installation
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]](https://static.lwn.net/images/2010/app-install-install-sm.png)
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]](https://static.lwn.net/images/2010/app-install-update-sm.png)
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:
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.
Posted Sep 9, 2010 6:42 UTC (Thu)
by glatzor (guest, #42416)
[Link]
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.
Posted Sep 9, 2010 8:23 UTC (Thu)
by mjthayer (guest, #39183)
[Link] (1 responses)
Posted Sep 9, 2010 12:40 UTC (Thu)
by BlueLightning (subscriber, #38978)
[Link]
Posted Sep 9, 2010 9:28 UTC (Thu)
by fb (guest, #53265)
[Link] (10 responses)
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.
Posted Sep 10, 2010 5:06 UTC (Fri)
by omez (guest, #6904)
[Link] (9 responses)
Posted Sep 10, 2010 17:39 UTC (Fri)
by cry_regarder (subscriber, #50545)
[Link] (8 responses)
Posted Sep 11, 2010 0:24 UTC (Sat)
by giraffedata (guest, #1954)
[Link] (3 responses)
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."
Posted Sep 11, 2010 22:45 UTC (Sat)
by dlang (guest, #313)
[Link] (2 responses)
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.
Posted Sep 12, 2010 1:20 UTC (Sun)
by omez (guest, #6904)
[Link] (1 responses)
Posted Sep 12, 2010 2:56 UTC (Sun)
by giraffedata (guest, #1954)
[Link]
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.
Posted Sep 11, 2010 2:40 UTC (Sat)
by omez (guest, #6904)
[Link]
To your point and others, a sane update system:
Posted Sep 14, 2010 1:30 UTC (Tue)
by cortana (subscriber, #24596)
[Link] (2 responses)
Windows and Linux have basically swapped positions WRT needing to restart after an update. This is a shame.
Posted Sep 14, 2010 3:50 UTC (Tue)
by dlang (guest, #313)
[Link] (1 responses)
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.
Posted Sep 14, 2010 9:05 UTC (Tue)
by cortana (subscriber, #24596)
[Link]
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'. :(
Posted Sep 9, 2010 10:42 UTC (Thu)
by mvidner (guest, #40070)
[Link]
Posted Sep 9, 2010 14:28 UTC (Thu)
by Tet (guest, #5433)
[Link] (1 responses)
Posted Sep 11, 2010 0:18 UTC (Sat)
by giraffedata (guest, #1954)
[Link]
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.
Posted Sep 16, 2010 7:54 UTC (Thu)
by ketilmalde (guest, #18719)
[Link]
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).
Posted Sep 16, 2010 12:27 UTC (Thu)
by linuxrocks123 (subscriber, #34648)
[Link]
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
Simplifying application installation
Simplifying application installation
Simplifying application installation
Simplifying application installation
Simplifying application installation
Simplifying application installation
Simplifying application installation
Updates should not just happen. These days, an update is likely to cause serious unstability until the desktop is restarted.
Simplifying application installation
Simplifying application installation
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.
Simplifying application installation
Simplifying application installation
- 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
Simplifying application installation
Simplifying application installation
As far as I can tell, Roderick is not involved with openSUSE, but with (K)Ubuntu. (It seems Richard got it wrong)
openSUSE
Simplifying application installation
Simplifying application installation
I've read the article, and I still have no idea what app-install is, or what it does.
Simplifying application installation
Simplifying application installation