Lately, a lot of people have been coming along because they have problems with Ubuntu Edgy. For those of you who do not know, Dapper is the current version of Ubuntu Linux. Edgy is the beta which is expected to be released in a month or so. Naturally, problems should be expected with a beta. Some people seem to just not be able to understand this concept.
Being a former Gentoo user, I can understand some of the frustration with waiting for new packages. For example, the current version of Banshee is 0.11.1, but in Ubuntu Dapper the newest available version is 0.10.10. 0.11.1 has many significant improvements over the older version that vastly improve the user experience. But because of the nature of Ubuntu development, you have to choose between using older, crappier, software or risking your system integrity.
This is very very annoying, especially if you are used to an operating system like Windows. On Windows, you can use the newest version of Firefox the day it comes out. You don’t have to wait for a bunch of dependencies to be marked stable before you can get the new version. You can get your new features and your new version that same day. And if anyone cares about new features and upgrading ASAP, it’s enthusiasts who use Linux.
So what we end up with are two separate problems. On the one hand we have users who screw up their systems because they demand to have the latest and greatest software. On the other hand we have package repository maintainers who aren’t making the latest and greatest stuff available quickly enough.
What’s the solution? I think it’s possible to kill two birds with one stone. What we need is a GUI application which allows users to take any source package and turn it into a proper deb package which installs from a local repository. Too many unofficial debs and repositories provide malformed packages which do more harm than good. Normal users do not know how to build and install applications from source. Even if you do successfully build a package from source, the package manager does not recognize it. It is also unreasonable to expect that every open source development team also maintain builds for every possible distribution. And don’t even get me started about dependencies.
The only reason this won’t work is because of dependency hell. Someone will write an application which requires version 4.0012 instead of version 4.0011 of some library. Some other piece of software requires version 4.0011 and will not work with 4.0012. Somehow, both of these programs may not run on the same system. The solution to this is to have a system where multiple versions of the same applications and libraries can simultaneously exist. Each application should link to the newest versions of the libraries with which it is compatible. Also, old libraries which are no longer needed should be discarded to avoid clutter.
In the end, this is just one of those very annoying aspects of Linux on the desktop. It’s awesome that new versions of new applications are coming out all the time. It’s awesome that users are getting access to all sorts of new features on a sometimes daily basis. What’s not awesome is when the middle-man, the distribution, gets between the users and the shiny new applications. Barring mistakes made by application developers, we need a distribution which can provide desktop users with the newest versions of desktop applications at all times. People are willing to screw up their systems to get this stuff. The only way I see to prevent them from doing so is to take away the incentive.