Your rPath to Conary

Development Release: rPath Linux 0.51 (Alpha) was announced by DistroWatch yesterday, and I was a bit curious. After my first glance, I was a bit taken aback. rPath doesn't seem to be targetting desktop users. Although it ships with KDE and Gnome, they aren't the most up-to-date versions, nor are they dressed up or enhanced in any manner distinguishable. In my humble opinion, I think rPath is probably a developer's platform, ...a conary developer's platform.

Information about rPath, as well as its ancestor Specifix, is fairly sketchy. The rPath website is a page listing a job opening and a link to the conary wiki, however DistroWatch states "rPath is a distribution based around the new Conary package management, created by ex-Red Hat engineers, to both showcase the abilities Conary provides and to provide a starting point for customisation." The conary wiki is pretty thin itself, although I was able to gleen a little information from it.

It was no big surprise to see (a modified) Anacoda as the installer and (as usual) I found it fairly straight forward and easy to complete. It asks some basic configuration questions such as network setup, firewall choice, and bootloader conf. I must say I loved the package selection portion. One is give one choice: everything. Could it be any easier? It takes a little while to install and once it's complete, it reboots without setting up other hardware or user accounts. Upon reboot it starts X as root, but to complete some other basic configurations in a graphical environment using rPaths Setup Agent. Included configurations include the date and timezone, monitor and resolution, and of course user account(s). Upon Finish, it restarts X and presents gdm for login. KDE and gnome are about your only choices for a desktop environment/window manager. rPath includes KDE-3.4.1 and Gnome-2.10.2. The Xserver version is xorg-6.8.2, gcc is 3.3.3, and the kernel is 2.6.12.5. The kernel-source isn't installed from the iso, but one can install it with conary.

        

Conary is rPath's package management system. As it appears conary is the focus of rPath, I spent quite a bit of time trying to figure it out. I began my quest quite lost and confused and ended it a little less lost and confused. According to the site, "Conary is a distributed software management system for Linux distributions. It replaces traditional package management solutions (such as RPM and dpkg) with one designed to enable loose collaboration across the Internet." Simply put, it's the package manager. It appears to be able to obtain packages from different repositories, utilizing binaries if available or sources if necessary and storing all versionings in a database in order to track changes from source branch all the way back to local versions installed on a given system to meet dependencies without conflicts.

According to the wiki, after the installation of rPath 0.51 the first thing one should do is update conary to version 0.62.2. Termed Conversion, the instructions stated to issue the following commands:

$su -
# conary update conary
# conary q conary
$ su
# sed -i 's/lockTroves/pinTroves/g' /etc/conaryrc

They continue with instructions in case an AssertionError is encountered. I didn't experience such an error and proceded with reading the wiki, --help, and man pages.

Conary at the commandline appears very apt-like. In fact the conary-gui is identical in appearance to synaptic. The gui front-end didn't seem to function very well here, but the commandline version seems to work as intended. Also included is the utility "yuck" which is a wrapper script to call conary --upgradeall.

        

Fortunately running conary is much easier than trying to understand what it is or how it works. Some simple commands include: conary q <packagename> reveals if the given packagename is installed, whereas conary rq <packagename> lists the newest available upgrade. conary update <packagename> installs or updates requested packagename, and conary erase <packagename> uninstalls. There are many many interesting options to play with in using conary beyond those basics, but most seem to geared toward package builders. Some of these include emerge, which builds the "recipe"; commit, which stores the changes; and showcs, which shows the difference. It really looks sophisticated and yes, I admit, a little complicated at the more in-depth level.

So, to install the kernel-source, one simply types: conary update kernel-source

The developers might be onto a superior package management system, but is it catching on? We know rPath obviously uses it and I understand Foresight Linux to utilize this package management system. As for rPath, it was a stable functional development environment. It seems it isn't trying to be the latest or greatest nor the prettiest. If you are interested in developing for conary or wish to use a system utilizing that package management system, then rPath might be the distro for you. The full package list as tested is HERE.

        

Comment viewing options

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

Conary

I'm pretty hazy on this too, so I might be completely off, but here is how I understand this:

While to a casual user Conary looks pretty much like apt-get or synaptic, it does do something more advanced under the hood. It is intended to make it easy to put together a system using a number of separate and *independent* repositories, each making its own changes and mini-releases. Conary tracks not only what you installed on your system, but also where it came from. This extends to any dependencies it uses, and it becomes quite a powerful concept.
For example, Foresight which also uses Conary is actually created largely from packages pulled directly from rPath repos; I would say as much as 75% of packages are not modified at all. If you install Foresight and later run updates on it, you'll see number of packages are updated from rPath repos. Any packages Foresight guys developed themselves come from their own repositories, naturally. But any packages that do exist in rPath but were modified in Foresight are overlayed over the 'standard' versions, with Conary keeping track of what comes from where, and what depends on what (in that context). This is pretty cool for Foresight guys, who can make their own distro while at the same time take a lot from the base, rPath.

Think of it this way: if you used Fedora, you probably tried at some stage to add various third-party repos to your yum config: Livna, Freshrpms etc... and quite possibly you discovered in the process some of them can conflict with others... it can become a mess. Well, this is exactly the situation Conary adresses.

... but again, I could be completely wrong.

re: Conary

That's pretty much the way I understand it as well, in that conary can keep track of any and all changes to the branches of a given source from the main branch all the way to minor revisions on public mirrors as well as on your local machine (which is especially good for developers). An end user can choose to install any version listed or just go with the latest. Like other package managers, all depends on the repositories set up tho. Good explanation! Thanks for your contribution. That's wonderful.

-s

----
You talk the talk, but do you waddle the waddle?

Another filter for packages?

Is Conary going to take on or include wine or BSD or Unix modified packages? If conary is only doing bookkeeping on updates, it can not assure the compatibility on the distro without having a filter. The filter must have diagonostic tools to assure compatibility. Is it too early in the development to see the trend? Footnote: Diagnostic tools are quite easy if you run the program then fix the crashes, Finally recompile for the new version, same as writing in any language, except in this case its mostly bindings of timely sockets and plug-ins and proper commands(normanclatures).

The way this is done is throu

The way this is done is through the "branch name" part of the version string that Conary uses. Basically, a distribution managed by Conary will choose a branch name for a particular branch of development. For example: if Fedora used Conary, it might use "fedora:fc1" as the branch name for Fedora Core 1. In this example, "fedora" is the namespace, "fc1" is the branch. Only Fedora should create branches in the "fedora" namespace.

The branch name is combined with a repository server name to create a "label". The label for Fedora Core 1 packages hosted by Red Hat might be "conary.fedora.rpath.com@fedora:fc1".

Other people who want to provide builds of software intended to work on FC1 also use the "fedora:fc1" label. freshrpms could use "conary.freshrpms.com@fedora:fc1" for its packages (ignoring the fact that freshrpms would be horribly misnamed if this came to be).

The same approach applies to managing software that runs under WINE, or on BSD, etc.

Using the branch name as the initial indicator of compatibility is generally a good idea. Conary does do fairly rich automated dependency discovery (when building) and resolution (when installing/updating). But it's still not safe to depend on these dependencies alone as indicators of compatibility. Hence the necessity for something like the branch name.

limiting source codes?

Using branch name does limit source codes to that branch, simplifies things but is Conary needed then; just stay with any one distro RPM or apt-get. So, for imported and converted codes using filters will be necessary; just as wine does.

I don't think I'm understandi

I don't think I'm understanding what you mean by "filters". Can you elaborate?

Filters?

When you use wine to run Windows application program, it filters all the windows commands/scripts and run it in native linux commands or scripts. Wine has been constantly updated to keep up with Windows. Codeweaver does IE6.0 in native Linux environment(Xandros); if in conary, branch name xandros. Codeweaver may not support other distros, thus may need many filters for many different distros.

Slight correction

The label for Fedora Core 1 packages hosted at Red Hat might be "conary.fedora.redhat.com@fedora:fc1". Sorry for the typo.

Conary

You are correct that rPath is developmnent release for the extensive testing of the Conary system, fPath is from Specifix who is the creator of Conary. Other distros like Foresight have taken and used it for their own needs. I find the Conary system interesting and quite functional, but have not made a decision about it's need and potential in the comunity.

My 2cents,
Capnkirby

re: Conary

I think it's a wonderful concept as well, but I think it'd be rather complicated to set up and most developers are already set in their ways. And when you factor in how few distros use that method... I don't think it's something that will catch on right away.

----
You talk the talk, but do you waddle the waddle?