One Package Manager for them All

by Susan Linton - Jan. 25, 2011Comments (19)

The idea of one universal package format for all distributions has been batted around a few times over the years. One of the most notable was Ryan C. Gordon's idea of FatELF files. Reactions varied from supportive to skeptical to down right opposed. Well, it seems a new team from major distributions is coming together to implement a "common application installer API and infrastructure."

Developers from RedHat, Fedora, Debian, Ubuntu, openSUSE, Mandriva and Mageia got together last week at the SUSE office in Nürnberg to discuss how they might implement a universal application installer they are referring to as an Application Store. This is in response to the belief that end users aren't interested in libraries, dependencies, compatibility, and other technical details. They think users only care about screenshots, basic descriptions, ratings, user reviews, and such. The idea is to define and write a tool to find and install applications.

Ryan "icculus" Gordon's idea was to package software archives so that needed kernel modules, dependencies, libraries, and software files were all included in one larger package. His idea also provided for all system architectures and would work across all distributions. He explained, "it adds some accounting info at the start of the file, and then appends all the ELF binaries after it, adding padding for alignment. FatELF lets you pack binaries into one file, seperated by OS ABI, OS ABI version, byte order and word size, and most importantly, CPU architecture."  One of the main ideas was that the package installers would look very much alike in much the same way that most Windows software installers look very similar.  Well, it didn't take too long before the wave of opposition halted the project.

But the idea is being revived, albeit by a totally different mechanism. AppStream builds on the idea introduced by the Bretzn Project, which will do the packaging for various architectures and distributions after the developer sends up the code, publish the package, and send out release announcements.

The AppStream team think the Ubuntu Software Center is the right user interface and plans are to port it to PackageKit. They plan to use Xapian servers to provide search results for users and use Open Collaboration Services to allow user ratings and reviews. Metadata will be stored on a server which will hold package information, icon location, repository type and location, and such. A compose server will extract the package information from the .desktop file (which participating distributions will need to provide for each package) and output all the information to a common XML file. The AppStream user interface will be the front-end for PackageKit, which then will instruct the distribution's package management system to install the desired application.



The significant difference between FatELF and AppStream is that FatELF was to include all the files needed for a universal package while AppStream compiles only the metadata needed to populate a universal installer. This can then be the main or only graphical package manager of most distributions if desired replacing (or in addition to), for example, Synaptic or Mandriva's RPMDrake.

The main goal would be to have a unified software experience for Linux as a whole, or in the words of the AppStream team, "to make installing and removing software on Linux suck less."


UPDATE:  Seems those involved are beginning to blog some about this project and they are referring to it as a cross-distro App Installer rather than AppStream.

Randy Clark uses OStatic to support Open Source, ask and answer questions and stay informed. What about you?


I dont' understand one thing. If a developer creates an app, then sends the tarball of the app to were ? It has to contact all distributions to add the app to their repositories ?

0 Votes

I dont' understand one thing. If a developer creates an app, then sends the tarball of the app to were ? It has to contact all distributions to add the app to their repositories ?

0 Votes

Its a great idea, forgetting about the little details.. (who holds the packages? what if one distro doesn't want to carry a package? etc..) It would be a good start to bringing about the common base that hardware vendors need to simplfly development and support for Linux. At the same time as spreading the ease of use that Ubuntu's Software centre brings. (bearing in mind that Software centre itself is still developing and improving.)

0 Votes

It would be a great improvement for software production in Linux, finally!

I hope they could reach an agreement soon :)

0 Votes

The way I understand it, only the location of the actual package, package information (software name, description, writers, etc), icons, probably format, location (repository url), and such will be housed by AppStream servers. The actual package will remain on original repository. Participating distributions will have to include a .desktop file with the needed data for AppStream to collect and display for users. I guess in essence, AppSteam is a database cluster. The AppStream front-end, probably based on Ubuntu Software Center, will not actually do the installation, but instead use packagekit to instruct the particular system package management to do the installation, be it APT, RPM, or whatever.

0 Votes

Not only it is a great idea, it is an absolutely necessary one and the first step towards standardizing. Until all the various communities come together, and work together on a common distribution Linux will never take over.

Start the flaming of my last comment, but its the truth - to many distributions, to many types of packages, comments and support hurts the linux community more than it helps.

0 Votes

I think Android has it right. Use QR codes to install. That way something could still be a .deb or rpm or exe. Who cares as longs when I scan that code it installs my application.

0 Votes

as long as they dont fudge it up like archs yaourt (half souce half package) mess then it might be ok......i still want to keep my apt-get but as long as they made this like a middle-man between your software center and your package manager it should work ok. However there are some differences in distros that will make software cranky.

for example once ubuntu goes to wayland and other distros are still running X11???? I think focusing on better repos for each distrobution will be better. Although if they could just make ubuntu software center work with all types of package managers (yum apt apt-rpm tazpkg etc) then each distro could just use the same front-end for newbies but keep all of their own repos for QC.

0 Votes


NixOS is an experimental Linux distribution that aims to improve the state of the art in system configuration management. In existing distributions, actions such as upgrades are dangerous: upgrading a package can cause other packages to break, upgrading an entire system is much less reliable than reinstalling from scratch, you can’t safely test what the results of a configuration change will be, you cannot easily undo changes to the system, and so on. We want to change that. NixOS has many innovative features:

Not using ‘global’ directories such as /bin is what allows multiple versions of a package to coexist. Nix does have a /etc to keep system-wide configuration files, but most files in that directory are symlinks to generated files in /nix/store.



GoboLinux is a modular Linux distribution: it organizes the programs in your system in a new, logical way. Instead of having parts of a program thrown at /usr/bin, other parts at /etc and yet more parts thrown at /usr/share/something/or/another, each program gets its own directory tree, keeping them all neatly separated and allowing you to see everything that's installed in the system and which files belong to which programs in a simple and obvious way.

Multiple versions of a program can be maintained simultaneously, so you can alternate between them as you desire, or even use both at the same time when necessary.

0 Votes

Not a lot of details, but it kinda sounds like a 'looks good, doesn't help ISVs one bit' solution. As opposed to creating a common interface for installing LSB compliant packages, which should theoretically work on any distribution supporting the LSB version and architecture the package was created for and be removed using whatever native mechanism the distribution normally uses.

Later, Seeker

0 Votes

RE: how will they do it:

The distributions will have a lot of flexibility in implementing their appstore infrastructure. They can keep using their own repository, but eg the Bretzn project makes use of the open source Build Service ( to build packages for a variety of distributions.

Now all that's needed is some way of supporting commercial projects and payment systems... ;-)

Anyone interested in helping, contact the bretzn team at

Seems very KDE & openSUSE centric and that's certainly true for the initial implementations but that's why ppl from other DE's and distro's should get involved - it's meant to be a cross-distro, cross-desktop collaborative effort. The infrastructure (including OBS and OCS) certainly make that easy...s

0 Votes

It is a nice idea but like another article stated it would be nice if a person could click on an application like firefox and have it launch the installer application and find this application they want. Most people are so used to going to a site and just clicking on what they want and installing it this way. I know this is not the Linux way of doing things but it would help a lot of people that come from Windows or even OS X to get around.

0 Votes

Having been a Windows (since 1993), Linux (since 2000) and sometime Mac user ( over the last 15 years), and having installed/removed packages on all 3 systems. In my experience the Linux sytem is the least sucky of all.

Mind you that's from a user perspective.

From a Proprietary Developer perspective (I'm not) it is probably the most sucky system around, simply because it doesn't lend itself easy to the method that works best on Windows, keep the code under you hat, build an installer and forget it, after that the user is pretty much on their own. updates are pretty much the user's responsibility, and/or the application, along with every other 3rd party one screams for attention whenever there is an update (usually at the most inconvenient time.

In contrast the Linux system takes care of the user from install to remove, updating the applications behind the scenes (more or less, as all software is updated at the same time).

If a universal packaging system can be created which builds on the one thing that differentialtes Linux from the other Operating Systems, which is, from the user point of View the killer application, and which makes it possible for the proprietary developers to package once (so they can keep their ever so precious IP under wraps) then I'm all for it.

If on the other hand this is simply a backdoor attempt to destroy the one thing that makes Linux such a great system to install use and remove software on, a system that contributes to the securty of Linux based systems, the packagemanagement system, then I'm against it.

0 Votes

quote::It is a nice idea but like another article stated it would be nice if a person could click on an application like firefox and have it launch the installer application and find this application they want. Most people are so used to going to a site and just clicking on what they want and installing it this way. I know this is not the Linux way of doing things but it would help a lot of people that come from Windows or even OS X to get around.::quote

And in the process Linu would become just another insecure operating system, where any and all trojans could be installed at the click of a mouse, you that would indeed maintain the familiarity with the Windows systems. And suddenly there would be a market for all those companies that sell the concept of security, the anti virus companies.

No I don't want my Linux systems infected with Anti Virus software.

0 Votes

A better way. . .???

I now use portable apps ( and VMed apps (which are portable also) exclusively on my win7 machine--this has mad life much easier when dealing with computer maintenance. This allows me to keep the OS completely separate and on a different partition than my programs, thus allowing me to keep a "clean" backup of the OS and only needing to make regular backups of my programs/"home" folder that contains everything else. When an issue arise with the OS I just fire up Ghost and restore my pristine OS and everything is back to being copacetic and my programs, regardless of when they were installed, are fine and operate normally and contain all setting form the very last time I used them.

This idea would make life so much easier on end users. Sure, programs don't like the idea of portable apps because of the redundancy of libraries but that doesn't add that much extra and the added security and easy of use far outweighs the negatives.

This would also allow for a single repository of apps, as they should be totally portable and work on any Linux distro. Therefore, I could easily take a copy of my currently working app and give it to a friend with all my settings, etc. . This is a great thing especially when dealing with FOSS.

It would also allow for apps to be "installed" just like windows or Mac software--download, click the installer--without any compromise to security because it would not be installing into the OS partition (that would be read only unless running with administration right and then should not allow programs that are non OS to be installed) and would be contained within a single folder (one folder for one app).

I'm sure there are tweaks that could make this idea much better, but the current way operating systems vomit programs into the OS and all over the hard drive is NOT user friendly at all nor is requiring every distro to have its own repository of apps--that's just nuts.

Linux could be significantly more user friendly than any other OS but it seems the Linus developer community wants to make things a techy as possible. . . which means it will forever be a niche OS.

0 Votes

There are two important parts to this app store model. Number 1 make a single place to register you application so users See it.

Number 2 updates. Those will work.

About selling applications with Digital rights management. Basically forget it being part of a common standard. Different forms of Digital Rights management makes attacking them harder.

Wayland vs X11 also forget about that being a problem. That is a problem to QT, Gtk and other toolkits as long as they keep same api/abi on wayland and x11 I don't need to worry as long as distribution provides those parts.

Yes Distributions That don't maintain compatibility could have issues.

0 Votes

"by an anonymous user on Jan. 29, 2011

A better way. . .???

I now use portable apps ( and VMed apps..."

Absolutely agree with the idea of using portable software on linux. I deal with computer maintenance almost the same way, except for backups. There is one project for linux already. You may find it in

Repos are not user-friendly at all.

0 Votes

I vote for portable apps, it could be very fine if I can run my favorite software on my usb pen in a linux pc without install nothing, I know it could be inefficent, but the easyness is very good, for efficency I will install the software in the proper way

0 Votes

Fantastic plan, I use OpenSuse & Ubuntu (Windows too), and have found Ubuntu the easiest, most user orientated application installation process (next to windows).

If the same philosophy/approach was used for hardware drivers, even better - maybe catagories for printers, video, etc etc, then use the package installation process (from the user point of view) to install - basically the way a regular Windows user works is this - plug in the kit, start the 'installation' application, follow the prompts - easy. Handy if the installation media was available through packages (software center) for all hardware. Hope your al following this?

In addition, and probably not very closely related, I'm thinking a unified approach to multi-media would be great too - think DirectX but for Linux, that enables all distros to 'run' compliant software games, DTP, 3D renderers etc - if a hardware compatability checklist was part of the installation process (in the software center program), then it would go a long way to make the process of 'installation' smoother for newbies/users. If there was a standard layer (i.e. like DX), then developers could write to a single common specification, each distros Application Center/installation process would recognise and check compatability (see hardware), and confirm a working installation.

From my view as a reseller & user of Linux, the problem with getting Linux to desktops of the regular user is not just about cost (Linux is FREE remember), but the inability for the regular user to install software, or understand why they can't just download a file, double click it, and watch as the application installs itself, or prompts the user as to why it can't work (in english).

ANyway food for thought!

0 Votes
Share Your Comments

If you are a member, to have your comment attributed to you. If you are not yet a member, Join OStatic and help the Open Source community by sharing your thoughts, answering user questions and providing reviews and alternatives for projects.

Promote Open Source Knowledge by sharing your thoughts, listing Alternatives and Answering Questions!