Opinion: Why repositories are not app stores


While Apple stomps around the internet, trying to gain exclusive rights to the term "app store", a lot of Linux users are furrowing their brows. After all, Linux has had the same kind of software delivery system for ages, right? Not quite. There are some important differences which can make or break a line of argument...

Let's start with features shared by Apple's iOS app store and the Ubuntu software repositories:

  • Users can browse software in categories, view ratings and screenshots
  • Software is downloaded from a single source (Apple or Ubuntu's servers)
  • Software is checked by the distributor to be reasonably secure and reliable

So far, so good, and it can be argued that Linux has had most of these features for a long time. But there's a fundamental difference in the way these software sources operate, and this can be demonstrated with an example.

A few weeks ago, I wanted to install Fedora 15 in VirtualBox on my Xubuntu 11.04 installation. I installed the distro, but Gnome Shell didn't work correctly. After some research, I discovered that Fedora 15 requires VirtualBox 4.0.8 to run perfectly. However, I only had version 4.0.4. Ubuntu also only had 4.0.4 in its repositories. Unless I waited another five months for the next Ubuntu release, I was stuck.

Well, not quite. After rummaging around on Google, I found a rather intricate guide to adding another repository and using a backported version of VirtualBox. It worked, but it was fiddly and meant I now had two sources of the same application.

And herein lies the fundamental difference between Linux repositories and app stores. In the app store world, developers can push out new versions of programs when they want - they have the control. The app store is constantly updating. Conversely, in the Linux world (rolling distros aside), the repositories are fixed; they remain static for the distro's lifetime, with only security patches making their way in. If you want newer software, you have to break out of the walled garden and find other ways to get your apps.

There are plus points to the Linux approach, of course: distro vendors can produce (sometimes!) extremely reliable operating systems by having total control over the software. But for home desktop users, who like to try the latest and greatest apps, the repository model doesn't always work as well.

We have to bear this in mind when advocating Linux. It's all good and well telling Joe User that Linux has the equivalent of Apple's app store, but when he has to wait six months for a distro upgrade (or start fiddling around with extra repos and certificates and commands), just to play the latest version of SuperTuxKart, the differences become clear.

Which raises some interesting questions: how can we get around this? For home desktop users, are rolling distros the way to go?

-- Mike Saunders

You should follow us on Identi.ca or Twitter

Your comments

Perhaps some middle ground?

Pehaps a hybrid approach would work. Keep the main repositories 'stable' and have a set of rolling repositories that developers have control over. The package manager could then suggest a newer version to the user when they search for it, but warn them that it's possible unstable. I guess it would kind of be like the Ubuntu PPA system, only more integrated into the distro.

Differentiate Applications from system updates.

In Ubuntu's Software Centre, new paid for apps just appear when they are released. When bought you get access to a PPA for that particular app.
Maybe a distro could pick the applications which are updated regularly but are unlikely to break underlying system stuff and give them separate PPAs for the latest versions.

Applications and System

I think there's an important distinction to be made between System software and User Applications. The problem we face in Linux is that both system software and user applications are currently delivered in the same way.

In my opinion, what we need is for system software to be delivered by package repository as it always has been, but for user software to be delivered in a more user-friendly way. AppStream sounds like a very interesting project.

I think Apple hit gold with the Application Bundle idea; these are wonderfully simple to install, and make it easy to have multiple versions of applications without clashes. Chakra Linux is doing something similar to Application Bundles on an ArchLinux-like base. It's a pity there hasn't been much interest in bundles in the Linux world.

Straw man

Ubuntu != Linux

Arch Linux, OpenSuse Tumbleweed?

Hi all, I think we already see initiatives in this direction. Arch Linux is a rolling release distro which has been around for quite a while now and the OpenSuse community had started a similar initiative with Tumbleweed. As long as there are no huge system changes, this works perfectly. The only idea I really like in the article is the splitting up of system and user applications. I think this would be a good in-between for rolling releases and the other release systems. This only needs small changes since all package managers are already able to work with multiple repositories and e.g. Arch Linux already splits up between Core and Extra repositories.

Suggesting that therefore Apple has come up with a brand new idea is a bridge to far in my opinion: it is the same system with another approach, that is all.

Monthly updates to most popular applications

Since on GNU/Linux many applications may require a lot of updated libraries (system and apps are modular, and not self-contained like a lot of mac apps-that's bad, people don't collaborate), we run the risk that to update an application, we need to change a lot of libraries, breaking something else.
App stores, where every app updates itself are bad for gnu/linux, because we have a lot of shared and integrated resources.

Maybe a good compromise could be to restrict ourselves to monthly updates for most popular software -things like firefox, libreoffice, amarok, digikam, gimp, inkscape, and so on- so once in a month you can get newest and greatest software simultaneously, updating also most of the libraries needed for them.

Kubuntu is doing it well with KDE Plasma: they release a monthly backport update, in sync with KDE releases, and it works fine.
Everyone will be happy, since we can afford to wait for some weeks (not months!) to get updates, but it won't be a (risky) rolling release approach.

So we could put these things in a monthly updated backport repository, like kubuntu does, so people that needs more stability can stay with stable repositories, and people that wants newer things can get them easily.

There is more choice in the Repository World

I have been a long time (over ten years now) user of Debian. Debian offer stable repositories but, as a completely open organisation, offers access to their developmental and experimental repositories also. Most of the time my systems are configured to use the development/testing repositories.

You made a decision to use Xubuntu and should accept that with that decision you also accept the limitations that come with that distribution. When I make the switch from Debian's stable repository to the development/testing one I do so to gain access to newer version of software. But I do so knowingly, and accept that, from time to time, some packages may not install and play happily with others.

It should never be forgotten that there is some really choice in the Linux world. There is almost certainly a Linux distro out that to suit your needs. If you wish to get your Linux platform from someone like IBM, Cononical or Red Hat, with all the after sales care and support that they offer, you can (at a price). If you want to use a non-cost version of a commercial distro then that option is available to you via Fedora and Ubuntu (among others). Or you can get Linux from a volunteer organisation such as Debian or Gentoo.

It is unfair, in my opinion, to conclude that the repository distribution system is limited because you choose to use one particular distro that is catering for a particular Linux market segment (if I can put it in those terms). As far as I can tell the "app store" distribution system is a logical result of the commercial organisations behind the iPhone and Android using a distribution model that was first proven in the FLOSS community.

Re: There is more choice in the Repository World

Dobbo, I know all about the unstable and experimental repositories. Joe User could switch to those to get his new games and desktop apps, but then he'd find his kernel, X server, drivers etc. updated too, which he may not want. The whole system ends up changing under his feet, when he just wants a new game.

Of course there's plenty of choice in the Linux world. And I'm not saying Apple's approach is perfect. But it does something that's very appealing to non-technical users: it lets them get new programs the minute they're released, without their OS constantly shifting around underneath.

I've seen too many Linux forum threads where non-technical users struggle to get a new app working, and are usually told they'll have to wait for the next round of distro updates. This puts people off, and I think we need to look for solutions.


Perhaps click to install PPA?

What if there was a way to do a "click to install" repo/PPA? Click to install the repo/ppa, then click to agree for the signature, then a refresh click. Most windows or OS X users can follow the click to install without having to drop the command line. And if its a single program repo/ppa (banshee. virtualbox, etc) add one more click "Install program now?" after the refresh. 4 clicks from looking at a newer version to installing it without dropping to the command line.

+1/2 for static linking

@ Rabid Badger

I would not go as far as saying static linking is your friend. It is the simplest solution, but far from ideal (Windows box full of cruft and multiple versions of the same library ring a bell?).

While having everything the app needs explode into one folder (one would hope, but looking at windows and the way even linux apps explode across your filesystem, it would not seem likely). The app could be totally sand-boxed and the only requirement would be the kernel version.

Therein lies the problem with static linking. The app would be required to be updated whenever the kernel is updated. Not so much of an issue for release cycle distros, but rolling release distros and users who use testing/backport/sid repos would have problems.

Of course, lets not forget the wasted space of having different versions of the same library scattered over your hard drive. Space not an issue in this day and age you say? How about installing 10 gtk apps and having 10 versions of the gtk library on your system, same with qt, space is now becoming an issue.

I firmly believe in the rolling release model. Some would say to warn users that it may be unstable, but that entirely depends on the distro. I most certainly would not say Arch is unstable.

So a rolling release system, along with, as others have suggested, system critical files in one repo, other system files (ie DE's WM's etc) in another and then apps in a third....hmmm sounds like the Arch world of Core, Extra and Community.... :)


Rolling release distributions are better

The rolling releases like Sabayon/Gentoo and Arch provide enough tested repositories with the latest software. I choose them! These distributions are very strong and solid even if not "stable", they progress very quick!

Arch Linux User

Distros with a long release cycle are probably not the best to use if you want the latest and greatest of everything. I don't think it gets any easier than a rolling release distro.

I myself use Arch linux, and I can't say I have had any issues with it.

The first linux distro I chose to run on my desktop was debian as I had experience of debian on a server and was fairly comfortable in dealing with any issues that may have arisen, however I was running debian stable, and the software lagged behind so far. I used debian stable with backports for a while.

After several months, I decided to upgrade to testing, but I was still not happy with the packages in testing. After running testing for a while, I finally decided to use debian unstable. I used debian unstable (actually pretty stable for a desktop!) for about 2 years and was then introduced to arch linux and never looked back!

I still use debian (stable) on my servers, but the rolling release cycle of arch combined with the awesome documentation, the fact that only what you want is installed, ease of use of pacman and the AUR, I simply fell in love! I would always recommend giving Arch a try, I can't imagine too many people being disappointed. This being said, I have not tried any other rolling release distros to compare.

As The Title Implies

I would consider this an extreme example as to the limitations of The Ubuntu Software Center, especially used to compare it to the likes of Apple. The inability to run a different distro in an 'application' as extensive and centric as a virtual machine is, in my opinion, a poor comparison to point out. Moreso, software repositories are not intended to be cross-platform. By chance, or perhaps general grouping, some applications within them are semi-portable but lets not begin using this as a necessity and by no means, a reason to lessen Ubuntu achievements. That said, i certainly agree that repositories aren't app stores..mind the lower-case now..Apple! However, being a platform that seems to want to lure users..albeit the poor ones..we have to make certain compromises. In the open-source world, those problems generally stem from the redundancy of compliants from the community and the programmers design goals, however implimented. Stability has long been a hassle for user, especially new ones, and a major design goal, in ubuntus case, is to be as appealing as Apple. Shuttleworth said it himself in January. So while yes, this title will get your blog here many visits, I'm concerned with your apparent lack of approval and support for software repositories and. Where are the positive, as in better-than-apple, aspects of 'Why Repositories Are-Not-app-stores'? Why mention, falsely, that new users will not be able to play new versions of games? This just seems to pointed to me..but thus is reporting eh? Does it occur to anyone else that software repositories are like rolling distributions? Or App Distributions if you perfer. Stability is the reason for your opinions why repositories arent app stores and ultimately up to the user.

Rolling distros ...

... may be the answer for non-technical users who want to stay in touch with current software but don't want to get involved in periodic reinstalls or configuring repositories etc.

However, users in some kinds of work environment may conclude that fixed-release distros are better for them, because routine updating will not suddenly give you a new version of an app which might introduce a glitch, or enforce a change in your workflow.

I used to use an extremely good and well-known 'rolling' distro for my work. It was very stable and well-made, too, but in the end it was 'rolling' just a bit too fast for comfort. For example, one day an update suddenly gave me Thunderbird 3, and my Lightning calendar with all my business appts listed in it was broken for a day or two. Another time, a routine update broke another core application for me, VMWare Server. I worked for HOURS and sweated heavily getting it going again.

I have now migrated to a fixed-release distro and feel safer from sudden breakage. However, under most circumstances I'd recommend a rolling release to new users who are not using a computer for work and wish to minimise maintenance tasks.

over the moon

I was over the Moon when CrunchBang turned to Debian 6 “Squeeze” and started being a proper distro with rolling updates.

Unfortunately I still have to mess about with all the bollox that puts most people off Linux.

To get a taste of single screen Gimp I had to brake my Distro
by adding Repo's and stuff, left right and centre now there are things I want that I cant have because I installed Gimp7 point (whatever).

You cannot rule the world from an iPad...

This question is like comparing apples to a small, furry, woodland creature, but I will toss in my $.02, adjusted for inflation...

I don't WANT a "walled garden".
I don't WANT the developers to have control.
I want ME to have control.

On MY Xubuntu 11.04 system (from which I am posting this), I have 16 PPAs, 4 Alien packages, and God only knows how many packages installed from .debs and compiled from source.

I have installed via apt-get, gdebi, synaptic, get-deb, and (shudder) even the software center. I have 3 or 4 forced-architecture packages (Lightscribe, and something else that escapes me)that were not available for 64 bit, but that work just fine.

I could NOT have done this with an "app store"...

As it has yet to be mentioned: It is all about choice.

Very good points in the posts above

Prolific Puffin - I agree with you 100% about choice.

I have been using Linux every day for several years, and like you I want control (even though I still prefer to avoid compiling from source when I can). The idea of the Apple 'closed shop' is anathema to me.

However, in my experience most people new to Linux will run off at once at the very mention of altering repo sources or adding PPAs. This includes experienced users of Windows and Mac, and not just non-technical people like my parents and in-laws.

For people who are not technically minded, rolling distros like PClinuxOS might provide a good solution. Not only does it keep on rolling and rolling, but you can get all the updates you will need from just one source repository. The package selection may not be as bewilderingly comprehensive as for openSUSE or Debian, but it is still vast - and surely enough for the huge majority of users. Your install can be administered and updated, if you wish, without using the command line at all.

Folks who want or need complete control, who know how to take advantage of the power of the terminal and are confident about maintaining multiple software sources can choose another distro - Debian, openSUSE, Slackware ...

There is a distro for everyone! The beauty of it is that even those that are simple to maintain are not 'walled gardens' and there is no need for them ever to become so. We need to help new users make informed choices, and to help them appreciate the core of shared properties and features that all distros embody, beneath the endless variety of different desktops etc.

I agree with alcalde that we should look beyond Ubuntu - excellent as it is in so many ways - and help new users identify other distros that might actually suit them better.

Rolling Distros Great, But No Picnic

As an Arch user myself, I'm a little disquieted by the assertion that rolling-release distros are great for the non-technical. Frequent updates to both user apps and core system utilities require library updates which in turn require new configuration files. Users need to analyze these files and merge the relevant changes. You see this often enough in Arch , but even more work is required by Sabayon/Gentoo.

Sure, these systems can be learned easily enough by those with the desire, patience and motivation to learn a few things about their configuration, but to suggest that those who aren't technically minded can use them without concern for or knowledge of the guts of the system is just misleading. Even the more "basic" distros like LMDE, PCLOS and the like require users to be aware of potential problems. Don't bother with a rolling-release distro if you aren't willing to fix things every now and again; that's part of the responsibility that comes with them. Frankly, if it's just a few apps you're concerned with, PPAs are the way to go. At least that way, a less technically minded person could more easily isolate the problematic package.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Username:   Password: