A look at rpath Linux
We downloaded the rpath ISOs and took the distribution for a little test drive, and we e-mailed Johnson and chatted with him in the #conary channel on freenode.net about the distribution and Conary to find out what it has to offer over other packaging systems.
In terms of the rpath distribution itself, Johnson said that it wasn't particularly unique, apart from the Conary packaging system. "Because the whole point is to be quite 'vanilla' outside of Conary, rpath Linux's main unique feature is that it is built with Conary. (Even that is not quite unique, actually, since Foresight Linux exists and is built with Conary as a derivative of rpath Linux.)
" The rpath distribution uses an Anaconda installer, and basically is a "vanilla" distribution with a GNOME 2.10 desktop and a lot of the applications you'd expect to see in a basic desktop distribution.
As the introduction to the Conary system explains, Conary is a packaging system that works like a Source Control Management (SCM) system. Everything is stored in a distributed repository, rather than package files. Components and packages in Conary are called "Troves." A source component may be built with different configurations and/or for different architectures. This is called a "flavor." A good example of this would be kernels built for SMP systems, or with different instruction sets. The SMP and UMP kernels would be different "flavors" of a component.
Versioning in Conary works a bit differently than with package systems like RPM and dpkg. For example, the RPM naming convention provides the name of the package, the version, the package release number, and the architecture. So the Abiword package for Fedora Core 3 is abiword-2.0.12-3.i386.rpm. Conary, on the other hand, names files according to the repository, the version number of the software, source revision number and binary revision number.
In practice, Conary's design allows one to install a package like Abiword and its dependencies without necessarily installing additional packages. For example, installing the Abiword "Trove" added the Enchant library component, but not the Enchant runtime or document components. Johnson also said that Conary makes it easy to install multiple versions of libraries. For example, users who run x86_64 should be able to easily install x86 and x86_64 versions of libraries.
Conary also works like an SCM in that one can rollback transactions. By running "conary rblist
" one can see the recent commits to the system and one can also move backwards by running "conary rollback r.nnn
" where "nnn" is the number of the revision. The list of commits to the system appears to start from the very beginning of the installation, so one could conceivably roll back quite a few changes rather easily. Note that rollbacks cannot be applied out of order, so one must progress backwards one rollback at a time.
The system can also be used to generate local changesets that can be committed to a local repository, and updated on other machines from that repository. This makes Conary interesting for system admins who need to customize software across a group of machines.
Conary also supports "branches" for development of Troves, so one may install a branch of an application and continue to follow that development tree rather than worrying about a conflict between versions of the application. If the main rpath distribution includes Firefox, for example, and there's an experimental version of Firefox in the "contrib" repository the user can install the experimental version from the contrib repository and then follow that branch of development without worrying about conflicts with the "official" version in the main repository. This also works with Conary flavors, so once one installs a specific flavor, that flavor will be installed when the user updates the package.
The rpath distribution also includes a Conary GUI application that serves as a browser for repositories, and which makes it easy to see what Troves are available for installation and so forth. It was easy to install Abiword and other applications from the Conary GUI, though the GUI works on the metaphor of applying updates rather than "installing" a package -- which might throw some users off. The Conary command-line tools took a bit of getting used to, but this is probably more a symptom of many years experience with RPM and dpkg, rather than a sign that Conary is overly complex. It's not quite as slick as APT or Yum just yet, but Johnson did say that work is still being done on Conary.
We also asked Johnson what the goals for rpath Linux were, and where rpath could "fit" in the already-crowded distribution market. According to Johnson, the problem is not that the market is too crowded, but that it's "crowded in the wrong way
".
Think more about a set of custom, interoperable operating system images instead of "distributions". Then you can pick the best operating system image without worrying about choosing a distribution putting you in a corner. Conary is the core technology which enables this view, and rpath Linux is a foundation or cornerstone.
He also said that the goal for rpath was "to make it a good distribution on which to base a derivative
".
Being a good source for derivative operating system images has some definite implications. rpath Linux must not be too heavily patched, because the more patches we apply to an upstream project, the less likely it is that some other patch (which someone building a derivative wants to apply in their derivative) will apply. The distribution needs to be functional and coherent, because otherwise who will want to use it as a source for their derivative work? It needs to be relatively current, because new patches aren't likely to apply easily to old source code.
Some people ask whether this approach will make "distribution hell" that much worse. Fortunately, the answer is, "no". When Conary is widely adopted (the only case that actually matters from this perspective), we'll have lots of interoperable slices, with rich dependencies that make it clear what actually interoperates. Already, rpath Linux users sometimes cherry-pick the bits that they want from the Foresight Linux repositories. Rich dependencies and explicit distribution and package inheritance will make this continue to work. Conary will mean that there are more customized installation images available, but will alleviate unnecessary incompatibilities by allowing derivatives to differ in distinctives only, and not drift apart into mutually-incompatible projects.
Obviously, Conary will achieve these goals by being adopted. Since Conary is currently in beta, and rpath Linux is in the last few stages of being alpha, I'm looking a little bit into the future here!
Conary is not limited to Linux systems. Johnson said that Conary should work "just fine on BSDs, and that they've had a report of successful Conary installation on Cygwin. The rpath distribution is probably not ready for production use, we ran into some spectacular Python errors using Conary after just a few updates and rollbacks, but the Conary package system is definitely worth a look. It should be interesting to see whether or not the Conary package system catches on. It has some worthwhile features, but it won't be easy to convert users who are already familiar (and have strong biases towards) existing packaging systems.
Index entries for this article GuestArticles Brockmeier, Joe
Posted Jun 9, 2005 22:50 UTC (Thu)
by cdmiller (guest, #2813)
[Link]
- cameron
Posted Jun 10, 2005 14:43 UTC (Fri)
by kevinbsmith (guest, #4778)
[Link] (2 responses)
If I could offer one word of advice, it would be to include specific examples of real-world situations where existing tools do a poor job, and the new tool helps. The example in the article about abiword and enchant is a step in the right direction, but for those of us who have no idea what enchant is, or why it has 3 components, it just adds to the confusion.
Poking around on the conary wiki, I found this, which was more informative:
But based on that document, conary seems to mostly solve problems found in the RPM world. As a typical desktop user, it's still not clear to me how conary would be better than emerge or apt.
On a different topic, the description of the long-term goals of rpath sound similar to progeny's componentized Linux. It would be interesting to see a comparison between those two projects.
Posted Jun 11, 2005 3:04 UTC (Sat)
by msw (guest, #3733)
[Link] (1 responses)
Enabling people to modify and customize the software components in a Linux based distribution was is of the major design goals for Conary. dpkg, rpm, portage, etc. don't give you the facility to do distributed development of an entire Linux-base distribution.
I was talking to a help desk staffer after my Conary presentation at TruLUG last night. He was asking why we didn't have Conary three years ago when the organization was deploying Red Hat Linux 7.3 to non-technical desktop users. They added StarOffice as the office suite, but integrating it into the distribution was extremely difficult. They wanted to modify the mailcap package so that StarOffice would automatically be used to open .doc files downloaded in Netscape. They ended up creating their own "ourcompany-mailcap" package because there wasn't a way to maintain that local modification to the mailcap package.
With Conary, the company would be able to create a special type of branch of the mailcap package. We call these branches "shadows". They would be able to make their local modifications on that shadow, which could be stored on a local Conary repository. Shadows keep track of the ancestry of the package, which allows you to easily merge in changes that happen "upstream" of the shadow.
Conary brings a paradigm shift in how software is managed on Linux systems, and how Linux distributions are built and customized. It takes a bit of time to see the whole system when you're looking at it from a "how is it better than APT, YUM or Portage" perspective.
Posted Jun 13, 2005 1:41 UTC (Mon)
by hazelsct (guest, #3659)
[Link]
Perhaps this is why Debian has been so successful as a base for new distributions...
But again, how is it again that conary does this better than dpkg?
Posted Jun 13, 2005 1:51 UTC (Mon)
by hazelsct (guest, #3659)
[Link]
If conary has some truly new or innovative features, I'd love to hear about them, but these ain't them!
So what happens when Enchant gets an upgraded "package" before the Abiword maintainer is ready to release an update, followed by the install of another package requiring the Enchant component?A look at rpath Linux
It is so frustrating to read an "introduction" to a product or project, only to find that it was written for an audience that already knows what the product does and why someone might want to use it. It's sadly common among home pages of FLOSS projects, and conary falls into the same trap. After reading the article, and the linked introduction to conary, I *still* had very little idea what conary might offer over the other packaging systems that I have used: emerge and apt. Buzzwords, marketingspeak, and/or other jargon
http://www.rpath.com/technology/techoverview/
Buzzwords, marketingspeak, and/or other jargon
> But based on that document, conary seems to mostly solve problems found in
> the RPM world. As a typical desktop user, it's still not clear to me how
> conary would be better than emerge or apt.
I'm sorry, but I too fail to see the advantage, at least over .debs (don't know about RPMs). The mailcap examples can be treated as a simple case of configuration file customization, which dpkg tracks straightforwardly -- and debconf does even better, as it substitutes configuration options correctly even as file formats change, where "shadows" might manage for small changes but will inevitably fail in the general case. (In fact, the http backend of debconf allows one to set site-wide configuration options which are seamlessly integrated into every machine's package-by-package conf files, automagically upgraded, etc.)Buzzwords, marketingspeak, and/or other jargon
Editor/author, please don't treat ancient features of .deb and .rpm as "novel" or "innovative", such as overlapping installation of multiple versions of a lib, or installing a lib without the corresponding runtime or doc packages. Also, apt has had the ability to merge packages from various distributions for years now (e.g. AbiWord and dependencies in experimental with gcc and its deps in unstable in an otherwise testing installation), that is neither new nor unique to conary.Many of these "innovations" are old